简体   繁体   English

@staff_member_required抛出“对象没有属性'user'”

[英]@staff_member_required is throwing “object has no attribute 'user'”

I'm using this decorator to make this page staff-only: 我正在使用此装饰器将此页面设置为仅供员工使用:

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

But for some reason I'm getting: 但是由于某种原因,我得到了:

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

Without the decorator, the view works fine (but anyone can see it). 没有装饰器,视图可以正常工作(但任何人都可以看到)。

You need to use method_decorator() : 您需要使用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")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM