14

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

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

那么,实现此场景的最佳方法是什么?

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

先感谢您

4

1 回答 1

28

您想将您的用户模型扩展到AbstractUser并添加您的附加字段。AbstractUser继承所有标准用户配置文件字段,而AbstractBaseUser从头开始,没有任何这些字段。

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

以下是使用扩展用户模型的文档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'

于 2013-02-27T22:30:08.653 回答