使用Django用户模型

时间:2018-08-03 17:13:09

标签: python django web

我已经看到人们以两种方式使用默认的django用户模型作为外键:

1)

from django.contrib.auth.models import User
user = models.ForeignKey(User)

2)

user = models.ForeignKey('auth.User')

但是在实现一对一关系时,我仅看到:

from django.contrib.auth.models import User
user = models.ForeignKey(User)

对此我有两个问题:

1)定义外键的两种方法实际上是相同的吗?

2)您可以使用user = models.OneToOneField('auth.user')吗?

1 个答案:

答案 0 :(得分:1)

两者都有效。但是,混淆来自于在Django 1.5中在添加AUTH_USER_MODEL之前使用'auth.user'的事实。

现在,在您的代码中,我实际上建议不要使用两者。而是遵循Django recommendation并使用settings.AUTH_USER_MODEL

user = models.ForeignKey(settings.AUTH_USER_MODEL)

user = models.OneToOneField(settings.AUTH_USER_MODEL)

这将避免您的代码在AUTH_USER_MODEL设置已更改为其他用户模型的项目中停止工作。