Django:试图将用户的名字传递给模板,但却得到了一个奇怪的代码
Django: trying to pass users first name to template but getting a weird code instead
在 views.py 我有:
def loggedin(request):
return render_to_response('theDB/loggedin.html', {'first_name': User.first_name })
在loggedin.html
我有:
<h2>Hi {{ first_name }} you are now logged in!</h2>
<p>Click <a href="/accounts/logout/">here</a> to logout.</p>"
这是我在浏览器中得到的:
Hi "<"django.db.models.query_utils.DeferredAttribute object at 0x0000019FD7AA7AC8> you are now logged in!
Click here to logout.
我没有看到用户的名字,而是看到了那个奇怪的东西(一个 unicode 对象?)
User
是模型 class,不是当前登录的用户。您可以在视图中使用 request.user
。
def loggedin(request):
return render(request, 'theDB/loggedin.html', {'first_name': request.user.first_name)
注意我使用了 render
快捷方式,推荐使用 render_to_response
快捷方式。
在 views.py 我有:
def loggedin(request):
return render_to_response('theDB/loggedin.html', {'first_name': User.first_name })
在loggedin.html
我有:
<h2>Hi {{ first_name }} you are now logged in!</h2>
<p>Click <a href="/accounts/logout/">here</a> to logout.</p>"
这是我在浏览器中得到的:
Hi "<"django.db.models.query_utils.DeferredAttribute object at 0x0000019FD7AA7AC8> you are now logged in!
Click here to logout.
我没有看到用户的名字,而是看到了那个奇怪的东西(一个 unicode 对象?)
User
是模型 class,不是当前登录的用户。您可以在视图中使用 request.user
。
def loggedin(request):
return render(request, 'theDB/loggedin.html', {'first_name': request.user.first_name)
注意我使用了 render
快捷方式,推荐使用 render_to_response
快捷方式。