繁体   English   中英

Django源代码中的Model.py在哪里?

[英]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

所以在那里描述了Modelhttps://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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM