2017-03-20 43 views
0

我只是想學習一個django項目。我已經使用django命令創建了項目和項目myapp。
在目錄/myproject的/ MYAPP $我views.py文件。另一個目錄/myproject/myapp /模板$我有hello.html文件。我想使用渲染函數將字典值從views.py文件發送到hello.html文件。但我得到一些錯誤稱爲如何將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** 

我不知道,如何解決這個問題。有人請幫助我。 我的文件將在下面進行:

/views.py

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

你應該使用render這樣。

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

在瀏覽器:NameError在/你好/全球名 'name' 沒有定義請求方法:\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

In Browser:NameError at/hello/ 未定義全局名稱'name' 請求方法:\t GET – Roy

+0

嘗試按上述方法更改或者如果您在模板中傳遞字典,則使用dict查找過濾器從字典中提取值 –

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

In瀏覽器:名稱錯誤在/你好/全局名稱'名稱'未定義請求方法:\t GET .... – Roy

1

你傳遞一個d ictionary。字典鍵應該是字符串。

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

返回呈現(請求,「hello.html」,{「personal_details」:personal_details}) ^ IndentationError:unindent與任何外部縮進級別不匹配 – Roy

+0

檢查您的代碼。你複製/粘貼它是錯誤的。 –

相關問題