我创建了一个带有自定义 User 模型的 Django 1.5 WebApp。它有效。 :)
我已经有了另一个应用正在使用的第二个 User2 模型。第二个 User2 模型不是 Django 应用程序,因此它是根据不同的标准构建的。它已经在许多用户的生产中。
现在我需要让 User 和 User2 都可以登录并做完全不同的事情。
我正在考虑使用一个 Django 应用程序来管理所有内容,因为在这两种情况下我都需要使用两种模型:当 User 登录时,我还需要一些关于 User2< 的信息 反之亦然。
我没有看到合并 User、User2 的方法,因为它们具有完全不同的字段。另外 User2 有一个指向 User 的 ForeignKey。
经过多次试验,我发现django 只支持一种AUTH_USER_MODEL。 所以现在我不知道如何进行。
我看到以下替代方案:
创建一个抽象用户模型 (
AbstractUser),然后将User和User2子类化,但我不知道如何以及是否这样做会工作创建一个全新的 Django WebApp,但这需要更大的(而且可能是不必要的)努力
寻找另一种方法来验证
User2,也许编写我的自定义验证码
您还看到其他选择吗?哪个最好?
如有任何帮助,我们将不胜感激!
请您参考如下方法:
我不确定我是否完全理解您的问题,但如果我理解了,我认为您正在寻找的是 OneToOneField。
当我在客户需要自定义用户的项目上工作时,最好的解决方案之一是创建一个新模型,其中 OneToOneField 像 Profile< 一样指向 Django 用户模型。当您有一个 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
