相关疑难解决方法(0)

如何在Django中向模型添加权限并使用shell对其进行测试

我在我的模型中添加了Meta类并同步了DB,然后在shell中创建了一个返回false的对象,所以我真的无法理解错误的位置或缺少的是某些其他文件中可能存在某种配置.

class Employer(User):#Employer inherits from User
    employer_verified = models.BooleanField(default=False)

    class Meta:
        permissions = (
            ("is_member", "Friendly permission description"),
        )

emp = Employer.objects.create(blablabla)
emp.save()
emp.has_perm('myappname.is_member')
Run Code Online (Sandbox Code Playgroud)

python django django-models django-forms django-admin

9
推荐指数
1
解决办法
2万
查看次数

向Django用户对象添加用户权限时出现无效的文字错误

我在我的Django应用程序中定义了一个模型foo,如下所示:

class Bar(models.Model):
    class Meta:
        permissions = (
            ("view_bar", "Can view bars"),
        )
Run Code Online (Sandbox Code Playgroud)

我已经跑manage.py syncdb了这个,果然,它出现在auth_permissions表格中:

id|name|content_type_id|codename
41|Can view bars|12|view_bar
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将该权限添加到视图中的用户对象时,如下所示:

request.user.user_permissions.add('foo.view_bar')
Run Code Online (Sandbox Code Playgroud)

代码爆炸,出现以下异常:

invalid literal for int() with base 10: 'foo.view_bar'
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

django django-permissions

6
推荐指数
1
解决办法
1760
查看次数