django,'auth.User'来自哪里?

时间:2013-03-31 09:05:05

标签: django django-models

在某些项目中,我发现应用程序的模型定义如下:

from django.db import models

class CustomUser(models.Model):
    user = models.ForeignKey('auth.User')

我的问题是'auth.User'来自哪里?

是从django.contrib.auth导入的。但是,用户不在auth/__init__.py档案中。

django如何知道,在auth/models.py文件中找到用户?

1 个答案:

答案 0 :(得分:3)

Django总是在应用程序中假设一个模型模块。所以这意味着django将寻找auth.models并在其中搜索名为User的类。查询从add_lazy_relation中的django/db/models/fields/related.py函数开始。正如您在源代码中看到的,当传递一个字符串时,它会为您提供三个选项,您可以传递'self'这将是与当前模型的关系,或者您可以传递'MyModel'来查找{ {1}}当前应用中模型模块内的类。最后,您可以通过'MyModel'查找'AnotherApp.AnotherModel'。如果好奇,模型查找功能在'AnotherApp.models.AnotherModel'

中实现