我想在我的用户模型中添加一些额外的字段,并使用从abstractuser类继承的方法读取自定义用户模型,但是当我实现用户模型时,Django用户名字段等消失了。
一种解决方案是使用其他模型(例如个人资料),但我想向Django用户模型添加额外的字段。这可能吗?
答案 0 :(得分:0)
您可以使用自定义的用户模型:
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
"""
Custom User Model
"""
TIMEZONES = tuple(zip(pytz.all_timezones, pytz.all_timezones))
username = models.CharField(max_length=255, unique=True)
full_name = models.CharField(max_length=255, blank=True, null=True)
email = models.CharField(max_length=255, unique=True)
image = models.ImageField(upload_to=get_image_path, blank=True, null=True)
timezone = models.CharField(max_length=32, choices=TIMEZONES, default="UTC")
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
USERNAME_FIELD = "email"
REQUIRED_FIELDS = ["username"]
def __str__(self):
return self.email
您将必须在settings.py
文件中注册您的自定义模型:
# Registering the Custom User Model
AUTH_USER_MODEL = 'my_app.User'