如何在Django 3.0中拒绝访问管理员页面?

2024-09-30 20:36:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望这样,当一个非职员/非管理员/非超级用户试图访问django管理员页面时,它会引发404错误,当一个用户是职员/管理员/超级用户时,它会将他们指向管理员页面

def nonstaffuser(view_func):
  def wrapper_func(request, *args, **kwargs):
    if request.user.is_superuser:
        return view_func(request, *args, **kwargs)
    else:
        raise Http404
return wrapper_func

这是我做的装饰师

urlpatterns = [  path('admin/', nonstaffuser(admin.site.urls)) ]

我导入了decorator,当用户不是staff时,它确实会引发404,但当用户实际上是staff/admin/superuser时,它会引发一个错误:“tuple”对象不可调用。我该如何解决这个问题?多谢各位


Tags: 用户viewadminrequest管理员def错误args