user.is_authenticated 在用户列表中
user.is_authenticated in Users List
尽管进行了多次搜索,但我还没有找到解决问题的方法:经过身份验证的用户的内容未显示在显示用户列表的视图中。
我的应用有一个显示用户列表的视图:
views.py
def UserListView(request):
user = User.objects.all().order_by('-date_joined')
return render(request, 'accounts/user_list.html', {"user": user})
带有此导航栏的基本模板:
base.html
<nav class="navbar">
<ul>
{% if user.is_authenticated %}
<li><a class="nav-item" href={% url 'logout' %}>Logout</a></li>
{% else %}
<li><a class="nav-item" href={% url 'login' %}>Login</a></li>
{% endif %}
</ul>
</nav>
即使用户已登录,菜单也会显示登录而不是注销。
我怀疑上下文有问题?
欢迎任何建议:)
视图中的变量 user
与身份验证上下文处理器中的 user
发生冲突。由于视图中的变量是一个查询集,它没有 is_authenicated
属性,因此 {% if user.is_authenticated %}
总是计算为 False
.
由于该视图显示的是多个用户的列表,因此最好将其重命名为users
。
def user_list_view(request):
users = User.objects.all().order_by('-date_joined')
return render(request, 'accounts/user_list.html', {"users": users})
然后您需要更改 accounts/user_list.html
模板中的循环,例如:
{% for u in users %}
{{ u.username }}
{% endfor %}
尽管进行了多次搜索,但我还没有找到解决问题的方法:经过身份验证的用户的内容未显示在显示用户列表的视图中。
我的应用有一个显示用户列表的视图:
views.py
def UserListView(request):
user = User.objects.all().order_by('-date_joined')
return render(request, 'accounts/user_list.html', {"user": user})
带有此导航栏的基本模板:
base.html
<nav class="navbar">
<ul>
{% if user.is_authenticated %}
<li><a class="nav-item" href={% url 'logout' %}>Logout</a></li>
{% else %}
<li><a class="nav-item" href={% url 'login' %}>Login</a></li>
{% endif %}
</ul>
</nav>
即使用户已登录,菜单也会显示登录而不是注销。 我怀疑上下文有问题? 欢迎任何建议:)
视图中的变量 user
与身份验证上下文处理器中的 user
发生冲突。由于视图中的变量是一个查询集,它没有 is_authenicated
属性,因此 {% if user.is_authenticated %}
总是计算为 False
.
由于该视图显示的是多个用户的列表,因此最好将其重命名为users
。
def user_list_view(request):
users = User.objects.all().order_by('-date_joined')
return render(request, 'accounts/user_list.html', {"users": users})
然后您需要更改 accounts/user_list.html
模板中的循环,例如:
{% for u in users %}
{{ u.username }}
{% endfor %}