我使用自定义User
模型创建了一个Django 1.5 WebApp。它有效。 :)
我已经有另一个应用程序正在使用的第二个User2
模型。第二个User2
模型不是Django应用程序,因此它使用不同的标准构建。它已经在许多用户的生产中。
现在我需要同时为User
和User2
提供登录和完全不同的事情。
我正在考虑使用一个Django应用程序来管理所有内容,因为在这两种情况下我都需要使用这两种模型:当User
登录时,我还需要一些关于User2
和反之的信息。
我没有看到合并User
,User2
的方法,因为它们具有完全不同的字段。加User2
的{{1}}指向ForeignKey
。
经过几次试验,我发现django只支持一个User
。
所以现在我不知道如何继续。
我看到以下替代方案:
创建一个抽象的用户模型(AUTH_USER_MODEL
),然后创建子类AbstractUser
和User
,但我不知道它是如何工作的
创建一个全新的Django WebApp,但这需要更大的(也许是不必要的)努力
找到另一种验证User2
的方法,也许是编写我的自定义验证码
你还有其他选择吗?哪个最好?
任何帮助将不胜感激!
答案 0 :(得分:1)
我不确定我是否理解你的问题,但如果我这样做,我认为你所寻找的是OneToOneField
。
当我处理客户想要定制用户的项目时,最好的解决方案之一就是创建一个新模型,其中OneToOneField
指向Django用户,就像Profile
模型一样。如果您有User
个对象,则可以执行user.profile
并获得与用户相关的个人资料(因此您可以执行user.profile.any_profile_field
)。
另一方面,如果你有对象Profile
,你可以访问User
对象,例如profile.user
,也可以访问profile.user.first_name
因此,如果我认为它符合您的问题,您应该将模型更改为OneToOneField
到User
,如下所示:
class Profile(models.Model):
user = models.OneToOneField(User)
field1 = models.CharField....
# ... ... ...
# Your fields here