Tec*_*ech 9 python django django-views django-users
我在ListView页面上列出注册用户,并尝试显示用户是否是超级用户。
我的主用户是使用python manage.py createsuperuser命令创建的,我确信它是超级用户,因为我也从管理面板检查过。
当我尝试打印它是否是超级用户时,我的代码总是显示输出False。这是我的代码:
视图.py
@method_decorator(staff_member_required, name='dispatch')
class Uyeler(ListView):
model = User
paginate_by = 40
ordering = ['-pk']
template_name = "panel/uyeler.html"
Run Code Online (Sandbox Code Playgroud)
并在模板文件中:
{% for obj in object_list %}
{% if obj.is_superuser %}
SuperUser
{% else %}
Not SuperUser {{ obj.is_superuser }}
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
对于包括我的超级用户帐户在内的所有用户,我的 html 输出都是“ Not SuperUser False ”。有任何想法吗?
小智 18
这是我的views.py,用于显示当前用户帐户
@login_required
def account(request):
if request.user.is_superuser: # just using request.user attributes
accounts = get_user_model().objects.all()```
Run Code Online (Sandbox Code Playgroud)
我在我的代码中尝试过,它正在工作,也许您的数据存在问题,这就是我的代码的样子
视图.py
def user_detail(request):
user_detail = CustomUser.objects.filter(id=id)
return(request,'user_datail.html',{'user_detail':user_detail})
Run Code Online (Sandbox Code Playgroud)
用户数据.html
{% for i in user_detail %}
{% if i.is_superuser %}
<td class="text-center"><span class="btn btn-success">You</span>
</td>
{% else %}
<td class="text-center"><span class="btn btn-info">Agent</span>
</td>
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
输出