Django 1.5多用户身份验证或

时间:2013-12-12 17:29:36

标签: python django

我使用自定义User模型创建了一个Django 1.5 WebApp。它有效。 :)

我已经有另一个应用程序正在使用的第二个User2模型。第二个User2模型不是Django应用程序,因此它使用不同的标准构建。它已经在许多用户的生产中。

现在我需要同时为UserUser2提供登录和完全不同的事情。

我正在考虑使用一个Django应用程序来管理所有内容,因为在这两种情况下我都需要使用这两种模型:当User登录时,我还需要一些关于User2和反之的信息。

我没有看到合并UserUser2的方法,因为它们具有完全不同的字段。加User2的{​​{1}}指向ForeignKey

经过几次试验,我发现django只支持一个User。 所以现在我不知道如何继续。

我看到以下替代方案:

  • 创建一个抽象的用户模型(AUTH_USER_MODEL),然后创建子类AbstractUserUser,但我不知道它是如何工作的

  • 创建一个全新的Django WebApp,但这需要更大的(也许是不必要的)努力

  • 找到另一种验证User2的方法,也许是编写我的自定义验证码

你还有其他选择吗?哪个最好?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解你的问题,但如果我这样做,我认为你所寻找的是OneToOneField

当我处理客户想要定制用户的项目时,最好的解决方案之一就是创建一个新模型,其中OneToOneField指向Django用户,就像Profile模型一样。如果您有User个对象,则可以执行user.profile并获得与用户相关的个人资料(因此您可以执行user.profile.any_profile_field)。

另一方面,如果你有对象Profile,你可以访问User对象,例如profile.user,也可以访问profile.user.first_name

因此,如果我认为它符合您的问题,您应该将模型更改为OneToOneFieldUser,如下所示:

class Profile(models.Model):
    user = models.OneToOneField(User)
    field1 = models.CharField....
    #     ...    ...     ...
    #      Your fields here