@staff_member_required正在抛出“对象没有属性'用户'”

时间:2016-11-28 23:14:26

标签: python django django-admin

我正在使用这个装饰器使这个页面只有员工:

class MyModelAdmin(admin.ModelAdmin):

    @staff_member_required
    def dostuff(self, request):
        return HttpResponse("This is secret")

    def get_urls(self):
        urls = super(MyModelAdmin, self).get_urls()
        my_urls = [
            url(r"^dostuff/$", self.dostuff)
        ]
        return my_urls + urls

但出于某些原因我得到了:

AttributeError: 'MyModelAdmin' object has no attribute 'user'

没有装饰器,视图工作正常(但任何人都可以看到它)。

1 个答案:

答案 0 :(得分:4)

您需要使用method_decorator()

from django.utils.decorators import method_decorator

class MyModelAdmin(admin.ModelAdmin):

    @method_decorator(staff_member_required)
    def dostuff(self, request):
        return HttpResponse("This is secret")