污损的管理面板用Django中的自定义字段扩展用户模型

时间:2018-10-24 15:19:23

标签: python django django-models django-admin

我为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

0 个答案:

没有答案