何时在Django 1.5中使用自定义用户模型

时间:2013-02-27 22:19:45

标签: django django-1.5

我对Django 1.5中的自定义用户模型有疑问

所以现在默认的用户模型看起来很好,我只需要添加一些其他变量,如性别,位置和生日,这样用户可以在成功注册并激活他们的帐户后填写这些变量。

那么,实现这种情况的最佳方法是什么?

我是否必须创建一个名为Profile的新应用并继承AbstractBaseUser?并将我的自定义变量添加到models.py?我可以效仿的好榜样吗?

提前谢谢

1 个答案:

答案 0 :(得分:27)

您希望将用户模型扩展到AbstractUser并添加其他字段。 AbstractUser继承了所有标准用户个人资料字段,而AbstractBaseUser从头开始,没有任何这些字段。

很难定义接近发布的最佳实践,但似乎除非您需要彻底重新定义用户模型,否则应尽可能使用AbstractUser

Here are the docs for extending the User model using AbstractUser

您的models.py看起来像这样:

class MyUser(AbstractUser):
    gender = models.DateField()
    location = models.CharField()
    birthday = models.CharField()
然后

MyUser将拥有User模型附带的标准电子邮件,密码,用户名等字段,以及上面的三个附加字段。

然后您需要将AUTH_USER_MODEL添加到settings.py

AUTH_USER_MODEL = 'myapp.MyUser'