我想在我的用户模型中添加一些额外的字段,我读取了自定义用户模型,并继承了抽象用户类,但是当我实现用户模型时,Django用户名字段等等就消失了。
一个解决方案是使用像profile这样的另一个模型,但是我希望向Django用户模型添加额外的字段。这个是可能的吗?
发布于 2019-10-25 04:03:04
您可以使用自定义用户模型:
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' https://stackoverflow.com/questions/58551993
复制相似问题