我想编辑用户模型,admin.py
但我不知道该怎么做?
这是用户模型的管理面板的图像
有人可以帮帮我吗?我想在 User 模型中添加一些自定义字段。
我想编辑用户模型,admin.py
但我不知道该怎么做?
这是用户模型的管理面板的图像
有人可以帮帮我吗?我想在 User 模型中添加一些自定义字段。
你可以通过AbstractUser
从 django 扩展来做到这一点。
# models.py
from django.contrib.auth.models import AbstractUser
from django.db import models
from django.utils.translation import gettext_lazy as _
class User(AbstractUser):
EMAIL_FIELD = 'email'
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']
email = models.EmailField(
_('email address'),
unique=True,
blank=True
)
cellphone = models.CharField(
_('cell phone'),
max_length=20,
null=True, blank=True
)
然后,您还需要在设置中指定此自定义用户模型。指定您刚刚创建的用户模型的路径。<app_name>.<ModelClassName>
# settings.py
AUTH_USER_MODEL = 'users.User'
UserAdmin
最后,如果您想省去创建他们已经创建的一些方法的所有麻烦,您的管理员还必须从 Django default 继承。现在,您还可以利用所有现有的管理员功能,以您想要的方式编辑用户管理员。
# admin.py
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin as OrigUserAdmin
User = get_user_model()
@admin.register(User)
class UserAdmin(OrigUserAdmin):
list_display = (
'id', 'first_name', 'last_name', 'username', 'email', 'is_active'
)
使用“AbstractUser”模型在 Django 中扩展预定义用户模型。
然后我们可以轻松地在 usermodel 中添加一些字段或添加更多信息。
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
bio = models.TextField(max_length=500, blank=True)
location = models.CharField(max_length=30, blank=True)
birth_date = models.DateField(null=True, blank=True)
然后我们必须更新定义 AUTH_USER_MODEL 属性的 settings.py。
AUTH_USER_MODEL = 'core.User'
点击此链接了解更多信息:- https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html