2014-07-06 86 views
1

我有一个Django 1.5应用程序,每个用户目前有两种不同的模型:内置的User模型和我自己的MyUser模型,其中包含的信息也用于身份验证过程。Django自定义用户模型与简介模型

我想将这两个模型合并为一个,或者至少从另一个中引用。

如果我要构建一个新的应用程序,我会做AUTH_USER_MODEL = 'myapp.MyUser',但according to the docs,更改用户模型会对数据库进行很多更改,并且可能很难在现有应用程序中迁移。

另一方面,文档还说,参考配置文件模型应该只有store non-auth related information about a site user

所以我的问题是:在现有的应用程序,什么是合并我的自定义用户使用模式的首选方式,内置User模式?

+0

你是什么意思的“引用其他”?他们还没有关系,例如OneToOneField? –

+0

不,他们没有。 'MyUser'目前独立于'User'模型,我想改变什么。 – Tzach

回答

1

我会建议在django中使用one-to-one关系。该模型可以像:

class CustomUser(models.Model): 
    dj_user= models.OneToOneField(User) 
+0

这就是文档所说的。但是它也说在这种情况下'CustomUser'应该只存储非认证数据。我想知道为什么...... – Tzach

+0

这意味着,您必须在用户名和密码中存储'用户' – ruddra

+0

是的,但我的应用程序不仅可以通过用户名和密码进行身份验证,所以我的自定义用户模型中有更多身份验证相关数据。 – Tzach