我对Django 1.5中的自定义用户模型有疑问
所以现在默认的用户模型看起来很好,我只需要添加一些其他变量,如性别,位置和生日,这样用户可以在成功注册并激活他们的帐户后填写这些变量。
那么,实现这种情况的最佳方法是什么?
我是否必须创建一个名为Profile的新应用并继承AbstractBaseUser?并将我的自定义变量添加到models.py?我可以效仿的好榜样吗?
提前谢谢
答案 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'