2017-03-20 5 views
0

私はちょうどdjangoプロジェクトを学ぼうとしています。私は既にdjangoコマンドを使ってプロジェクトと内部プロジェクトmyappの作成をしました。
ディレクトリ/myproject/myapp $私はviews.pyファイルを持っています。別のディレクトリ/myproject/myapp/templates $私はhello.htmlファイルを持っています。私は、レンダリング機能を使って、views.pyファイルからhello.htmlファイルにDictionary値を送りたいと思う。しかし、私はdjangoアプリケーションのビューから辞​​書の値をビューに渡す方法

**Internal Server Error: /hello/ 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py", line 42, in inner 
    response = get_response(request) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 187, in _get_response 
    response = self.process_exception_by_middleware(e, request) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 185, in _get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "/home/joy/pythonWork/myproject/myapp/views.py", line 8, in hello 
    name  : 'xyz', 
NameError: global name 'name' is not defined** 

私はどんな考えを持ってscroll down toパソコンへ転送と呼ばれるいくつかのエラーを取得しています、このproblem.Someoneを解決するためにどのように私を助けてください。 私のファイルが怒鳴る記載されています:あなたはこのようなrenderを使用する必要があります

from django.shortcuts import render 
from django.http import HttpResponse 

# Create your views here. 

def hello(request): 
    personalDetails = { 
     name  : 'xyz', 
     phoneno : '722924374' 
    } 
    return render(request, "hello.html", {personalDetails}) 

/hello.html

<html> 
<body> 

<h1>Hello</h1>{{personalDetails}} 

</body> 
</html> 

答えて

0

/views.py。

return render(request, "hello.html", {"personalDetails": personalDetails}) 
+0

:グローバル名 '名前' /ハロー/でNameErrorがリクエストメソッドを定義されていません:\t GET ....あなたが修正 – Roy

+0

ディス '{{personalDetails}}'に '{{} personalDeatils.name } '?ブラウザで – bismute

0

from django.shortcuts import render 
from django.http import HttpResponse 

# Create your views here. 

def hello(request): 
    personalDetails = { 
     name  : 'xyz', 
     phoneno : '722924374' 
    } 
    return render(request, "hello.html", **personalDetails) 

し、HTMLに

<html> 
<body> 

<h1>Hello</h1>{{name}} 

</body> 
</html> 
+0

:\t – Roy

+0

は、上記のようにしたり、テンプレートに辞書を渡している場合は、その後で辞書 –

0
def hello(request): 
    personalDetails = { 
     name  : 'xyz', 
     phoneno : '7022924374' 
    } 
    return render(request, "hello.html", {"personalDetails":personalDetails}) 

そして、テンプレートでこの変更をお試しください:

<html> 
<body> 
{% for item in personalDetails %} 
    <h1>Hello</h1>{{item.name}} 
{% endfor %} 

</body> 
</html> 
+0

から値をフェッチするために辞書検索フィルタを使用し変更してみてくださいGET:こんにちは/でNameErrorは/ グローバル名「name」は リクエストメソッドを定義されていません。ブラウザ:/ hello /グローバル名 'name'のNameErrorが定義されていませんリクエストメソッド:\t GET .... – Roy

1

あなたはDを渡しています辞書。辞書のキーは文字列でなければなりません。ブラウザで

def hello(request): 
    personal_details = { 
     'name': 'xyz', 
     'phoneno': '7022924374', 
    } 
    return render(request, 'hello.html', {'personal_details': personal_details}) 
+0

リターンレンダリング(request、 "hello.html"、{"personal_details":personal_details}) ^ インデントエラ:インデント解除外部のインデントレベルと一致しません – Roy

+0

コードを確認してください。あなたはそれを間違ってコピー/貼り付けます。 –

関連する問題