【问题标题】:How can I check if an user is superuser in django如何检查用户是否是 django 中的超级用户
【发布时间】:2021-04-01 21:59:29
【问题描述】:

我在 ListView 页面上列出注册用户,并试图显示用户是否是超级用户。

我的主要用户是使用“manage.py createsuperuser”命令创建的,我确定它是超级用户,因为我也从管理面板检查过。

当我尝试打印它是否是超级用户时,我的代码总是显示“假”输出。这是我的代码:

views.py

@method_decorator(staff_member_required, name='dispatch')
class Uyeler(ListView):

    model = User
    paginate_by = 40
    ordering = ['-pk']
    template_name = "panel/uyeler.html"

在模板文件中:

  {% for obj in object_list %} 

                      
                    {% if obj.is_superuser %}SuperUser {% else %} Not SuperUser {{ obj.is_superuser }} {%endif%}

{% endfor %

对于包括我的超级用户帐户在内的所有用户,我的 html 输出都是“非超级用户错误”。有什么想法吗?

【问题讨论】:

  • 尝试在 Not SuperUser 之后删除 {{ obj.is_superuser }}
  • 没有变化。无论如何,我打印它只是为了提供信息。
  • 如果打印为 false,则表示没有超级用户,或者您的代码中可能缺少某些内容。因为它对我有用。
  • “管理面板”对超级用户价值有何看法?
  • 在管理面板超级用户框被选中。

标签: django django-users


【解决方案1】:

这是我的views.py:

def user_detail(request):
   user_detail = CustomUser.objects.filter(id=id)
   return(request,'user_datail.html',{'user_detail':user_detail})

这是我的user_datail.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 %}

见我的output:

【讨论】:

    【解决方案2】:

    这是我的views.py,用于显示当前用户帐户

    @login_required
    def account(request):
        if request.user.is_superuser: # just using request.user attributes
            accounts = get_user_model().objects.all()```
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 2022-11-25
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 2011-05-08
      相关资源
      最近更新 更多