Django" AttributeError:'功能'对象没有属性' as_view'"

时间:2017-10-23 11:24:13

标签: python django

当我使用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"

1 个答案:

答案 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视为基于类的视图的替代方法。