当我使用user_passes_test修饰符时出现错误:
"属性错误:'功能'对象没有属性' as_view'"
这是我的代码:
urls.py:
url(r'^user/admin/$', UpdateAdminView.as_view(), name='admin'),
views.py:
@user_passes_test(lambda u: u.is_superuser)
@method_decorator(login_required, name='dispatch')
class UpdateAdminView(TemplateView):
template_name = "admin.html"
答案 0 :(得分:2)
您应该使用方法装饰器进行超级用户检查,就像您需要登录一样。
由于用户必须登录才能成为超级用户,因此在这种情况下您可以删除login_required
装饰器。
superuser_required = user_passes_test(lambda u: u.is_superuser)
@method_decorator(superuser_required, name='dispatch')
class UpdateAdminView(TemplateView):
template_name = "admin.html"
您可能希望将UserPassesTestMixin
视为基于类的视图的替代方法。