扩展 Django 用户模型:最佳方法
使用自定义字段扩展内置 Django 用户模型时,有两种主要方法脱颖而出:
1。使用 OneToOneField(User) 属性
这是推荐的 Django 方法,涉及创建与 User 模型具有一对一关系的新模型。这个“个人资料”模型可以存储有关用户的附加信息。
from django.db import models from django.contrib.auth.models import User class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) # Custom fields here, e.g.: address = models.CharField(max_length=255) phone_number = models.CharField(max_length=15) # ...
2.使用自定义用户模型替换
这种方法涉及将 Django 用户模型完全替换为包含所需修改的自定义模型。然而,它被认为是激烈的,并带有警告:
使用电子邮件作为用户名
要使用电子邮件作为用户名,您可以:
示例:
class CustomUser(AbstractUser): def get_username(self): return self.email # ... user = CustomUser.objects.get(username='john@example.com') user.set_username('jack@example.com') user.save()
以上是如何使用自定义字段最好地扩展 Django 用户模型?的详细内容。更多信息请关注PHP中文网其他相关文章!