我为django用户添加了一些字段,因此我可以为用户定义权限级别。通过在管理面板中选择每个级别,您可以访问网站的某些部分。
但是当我在管理模板中转到用户面板时,它可以正常工作但被破坏了。
这是我的代码:
models.py:
class CustomUser(AbstractUser):
is_level_one = models.BooleanField(default=False)
is_level_two = models.BooleanField(default=False)
is_level_three = models.BooleanField(default=False)
admin.py (简单版本)
admin.site.register(CustomUser)
这是管理员用户的污损视图:
first image of /admin/basic_app/user
second image of /admin/basic_app/user
您看到的是这些问题:
1.用户权限框消失了,您无法为用户分配权限
2.上次登录和日期加入分开
3.组框几乎消失了
4.password字段填充了哈希密码
*但是我定义的3个访问级别仍然存在(您可以在页面底部看到复选框,并且可以正常工作)*
这是我的装饰代码,如果有人需要使用:
def level_one_required(function=None, redirect_field_name=REDIRECT_FIELD_NAME, refused='basic_app:index'):
actual_decorator = user_passes_test(
lambda u: u.is_active and u.is_level_one,
login_url=refused,
redirect_field_name=redirect_field_name
)
if function:
return actual_decorator(function)
return actual_decorator