我在做什麼錯了?我只想要用戶的用戶名。我登錄,所以我不知道爲什麼它不工作。使用django.contrib.auth無法在模板中獲取用戶
views.py
from django.contrib.auth.models import User
def check_user(request):
data = dict()
user = User.objects.all()
data['user'] = user
return render(request, 'check_user.html', data)
urls.py
url(r'^check_user/$', views.check_user, name='check_user'),
check_user.html
{{ request.user.is_authenticated }}
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
<p>Welcome, new user. Please log in.</p>
{% endif %}
而且我得到這個:
CallableBool(True)
Welcome, new user. Please log in.
當我應該得到:
Welcome, admin. Thanks for logging in.
如果我使用:{%如果request.user.is_authenticated%},而不是{%如果user.is_authenticated%}我得到這個:
Welcome, . Thanks for logging in.
Ooooh所以我不需要傳遞User.objects。all()attall,因爲它在模板中自動實現? –
如果您需要所有用戶的列表,那麼您需要。但是,在這裏,您要求提供請求該頁面的當前用戶的用戶名?對 ? – Wilfried
是的,謝謝。 –