我正在学习Django,需要一些帮助。
我需要在我的用户模型中包含一个额外的布尔字段(我相信是数据库中的auth_user表),并在管理用户时将其显示在管理界面中,如图中的staff status字段。
- 127:0.0.1:8000/admin/user*:
x1c 0d1x的数据
然后...
- 127.0.0.1:8000/admin/auth/user/2/change/*:
的
我不知道该怎么处理。我知道我必须扩展AbstractUser模型,然后手动将字段添加到数据库中,但是我如何更新管理界面的 view、form和templates 的新字段呢?我需要重写所有这些的django管理源代码吗,或者有更简单的方法吗?
5条答案
按热度按时间wlwcrazw1#
我是这样做的:
**注意:**这应该在创建新项目时完成。
向用户模型添加字段:-
字符串
覆盖默认用户模型:-
型
在管理页面上显示模型:-
型
nzrxty8p2#
最好的方法是使用User OneToOneField创建新模型。例如
字符串
您可以在User Model或UserProfile Model中使用djangoadmin,并可以相应地在Admin中显示字段
gpnt7bae3#
您有两个选择,它们是:
1.通过添加另一个模型并使用一对一关系将其链接到User模型来扩展现有的User模型。看这里。
1.编写你自己的用户模型并使用它,这对新手来说很难。看这里。
wwwo4jvm4#
字符串
fivyi3re5#
2023年7月更新:
您可以使用OneToOneField()扩展User模型以添加额外的字段。* 您还可以看到我的答案,解释如何使用AbstractUser或AbstractBaseUser和PermissionsMixin设置
email
和password
身份验证。首先,运行下面的命令创建
account
app:字符串
然后,在
settings.py
中将account
app设置为INSTALLED_APPS,如下所示:型
然后,在
account/models.py
中创建UserProfile
模型,如下所示。*user
字段使用OneToOneField()
扩展User
型号:型
然后,在
account/admin.py
中创建UserProfileInline
和UserAdmin
类,如下所示。* 对于admin.site.unregister(User)
,必须取消默认注册的User
型号,否则会出现错误:型
然后,运行下面的命令:
型
然后,运行下面的命令:
型
最后,您可以使用额外的字段扩展
User
模型,如下所示:的数据