django user_passes_test装饰者is_superuser

时间:2013-07-24 15:01:53

标签: python django django-models django-admin

最初我在is_superuser标志的帮助下限制了所有用户的权限,我使用了@user_passes_test(lambda u: u.is_superuser) decorator.Now我没有使用is_superuser标志,而是在UserProfile模型中创建了一个名为is_admin_user的字段并允许权限取决于UserProfile模型中的标志。

如果设置了is_admin_user标志,他可以访问应用程序设置页面,否则他们无法访问设置页面。使用is_admin_user标志创建配置文件时,默认的django is_superuser标志设置为false。因为我正在使用装饰器我无法访问设置页面。如果我点击设置页面,它会重定向到登录页面。

1.是否可以为is_admin_user创建任何其他自定义内容。

2.如果我对此行@user_passes_test(lambda u: u.is_superuser)发表评论,则可以转到设置页面。

需要建议。

1 个答案:

答案 0 :(得分:1)

使用类似

的内容
@user_passes_test(lambda u: u.userprofile.is_admin_user)

您可能需要将userprofile更改为您的个人资料related_name