来自django.contrib.auth.models import用户vs将用户ForeignKey定义为owner = models.ForeignKey(' auth.User')

时间:2014-06-19 13:00:49

标签: python django authentication

如何从Django附带的auth包中导入User,我需要这样做:

from django.contrib.auth.models import User

虽然要引用相同的User模型来创建ForeignKey,但我需要这样做:

owner = models.ForeignKey('auth.User', related_name='snippets')

而不是'auth.models.User'

我在这里关注示例:http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions

1 个答案:

答案 0 :(得分:2)

这是由于Django的"懒惰的关系" 。您可以看到此here的代码。您不需要指定确切的模块,在本例中为models,因为从Django models.Model继承的任何内容一旦发出class_prepared信号,就会触发{{1}}信号。 s初始化,到目前为止,它仍然只是一个字符串。

只需提供应用和型号,或仅提供型号名称(如果它在同一个应用中)。