使用自定义字段来扩展用户模型(与Django的身份验证应用程序捆绑在一起)的最佳方式是什么?我也可能想使用电子邮件作为用户名(用于身份验证的目的)。
我已经看到了一些 方法来做到这一点,但不能决定哪一个是最好的
由于Django 1.5,你可以轻松地扩展用户模型并在数据库上保留一个表。
from django.contrib.auth.models import AbstractUse
from django.db import models
from django.utils.translation import ugettext_lazy as _
class UserProfile(AbstractUser):
age = models.PositiveIntegerField(_("age"))
你还必须在设置文件中将其配置为当前用户类别
# supposing you put it in apps/profiles/models.py
AUTH_USER_MODEL = "profiles.UserProfile"
如果你想添加很多用户的喜好,OneToOneField选项可能是一个更好的选择思路。
对于开发第三方库的人来说:如果你需要访问用户类,记住人们可以改变它。使用官方的帮手来获得正确的课程
from django.contrib.auth import get_user_model
User = get_user_model()