python - @staff_member_required 正在抛出 "object has no attribute ' 用户'”

标签 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' 对象没有属性 'user'

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

最佳答案

您需要使用 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")

关于python - @staff_member_required 正在抛出 "object has no attribute ' 用户'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40855170/

相关文章:

python - 连接到 AWS Aurora 集群时偶尔出现 'temporary failure in name resolution'

python - django-rest-swagger 不能很好地与模型序列化器一起使用吗?

Django:动态 success_url 导致 "' NoneType' 对象没有属性 'find'"

python - 从 Ruby 到 Python : Crawlers

python - 带有可选参数的方法的 assertRaises

python - 获取具有特定扩展名并在其文件夹中包含特定单词的文件?

python - Celery 在其他任务完成时启动任务

Django:在使用电子邮件登录字段而不是用户名后, super 用户和用户无法登录管理和用户页面

python - 在 Django Admin 中限制/过滤外键选择

python - Django 管理不显示条目