[英]Where is Model.py in the Django source code?
我一直在编写我的前几个Django模型,并想看看所有模型扩展的基类(例如:“类Poll(models.Model”)但找不到Model基类。我检查了github上的源代码当我浏览django.db.models目录时,我很惊讶找不到我能看到的“Model.py”文件。这个文件生成了吗?或者类Model是否存在于其他地方?或者是否有一些python我不熟悉包魔术吗?
正如之前所说,Python不是Java。 特别是,Python中没有任何内容表明类必须存在于与类同名的文件中。
正如San4ez所指出的, Model
类存在于django.db.models.base
,并被导入到该目录中的__init__.py
文件中,以便可以直接作为models.Model
引用。 这不是任何一种魔法,只是普通的惯用Python。
但是,一旦你查看了类本身的代码,你会发现它实际上确实包含了很多Python魔法,特别是围绕元类。 但这是一个不同的问题。
在https://github.com/django/django/blob/master/django/db/models/__init__.py
看
from django.db.models.base import Model
所以在那里描述了Model
类https://github.com/django/django/blob/master/django/db/models/base.py
从字面上看,您可以通过这种方式将模型from django.db.models.base import Model
到您的项目中。 但是django核心开发人员决定隐藏一些服务类,导入一些django.db.models
包并提供你使用更短的导入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.