gpt4 book ai didi

python - 限制 django 中的用户

转载 作者:行者123 更新时间:2023-12-01 01:36:26 28 4
gpt4 key购买 nike

我有一个面板来管理管理员或管理员用户的帖子。如何限制面板并仅向管理员显示,而不向系统中注册的其他用户显示。

查看:

class IndexView(LoginRequiredMixin, ListView):
model = Post
template_name = 'panel/index.html'

def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
context["posts"] = Post.objects.all()
context["counter"] = self.post_counter(context["posts"])
return context

def post_counter(self, posts):
postNumber = 0
for post in posts:
postNumber +=1

return postNumber

最佳答案

由于您拥有 CBV,因此您可以使用 PermissionMixin,然后指定权限。像这样的事情:

from django.contrib.auth.mixins import PermissionRequiredMixin

class MyView(PermissionRequiredMixin, View):
permission_required = ("is_staff", "is_superuser", )
....

引用:https://docs.djangoproject.com/en/2.1/topics/auth/default/#django.contrib.auth.mixins.PermissionRequiredMixin

如果您有基于函数的 View ,那么您可以使用@staff_member_required

类似这样的事情:

from django.contrib.admin.views.decorators import staff_member_required

@staff_member_required
def my_view(request):
...

引用和进一步阅读:https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#django.contrib.admin.views.decorators.staff_member_required

关于python - 限制 django 中的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52358356/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com