【问题标题】:type object 'User' has no attribute 'is_staff' in Django Application类型对象“用户”在 Django 应用程序中没有属性“is_staff”
【发布时间】:2015-10-29 18:12:18
【问题描述】:

如果您看到link,他们认为User 对象具有is_staff 属性。当我们在单元测试中创建新用户时,我试图查看is_staff 的默认值是多少。代码相当简单:

def test_login_user(self):
        User.objects.create_user('john', 'example@abc.edu', 'password')
        print self.client.login(username='john', password='password')
        print User.is_staff
        if User.is_staff:
            s = requests.get('http://127.0.0.1:8000/dashboard/')
        else:
            s = HttpResponseForbidden()
        print s.status_code

现在当我尝试打印出print User.is_staff 时,它正在显示

类型对象“用户”在 Django 应用程序中没有属性“is_staff”

我已经知道用户不是员工用户,所以User.is_staff 的输出应该是False 对吧?谁能指出我在这里错在哪里?

【问题讨论】:

    标签: python django django-models django-testing django-users


    【解决方案1】:

    你应该检查类实例,而不是类:

    user = User.objects.create_user('john', 'example@abc.edu', 'password')
    if user.is_staff:
        <do something>
    

    【讨论】:

    • 你知道RequireStaffMixinView 吗?为什么使用它?
    • 不。我认为这是您项目的一部分,即不是 Django 的一部分。但这与您的问题有什么关系?
    • 学习 Django :) 感到困惑。感谢您的回答
    猜你喜欢
    • 2021-06-29
    • 1970-01-01
    • 2020-01-12
    • 2011-07-28
    • 1970-01-01
    • 2016-01-16
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多