python - 为 Django 模型使用除 models.py 之外的其他文件名?

标签 python django model

创建可重用应用程序时,我应该将我定义的所有模型放入单个文件 models.py 中,还是可以将模型分组到多个文件中,如 topic1.pytopic2.py?

请描述所有赞成和反对的理由。

最佳答案

models 子模块的特殊之处在于它在初始化过程中的特定时间自动导入。此时也应导入所有模型。您不能在此之前导入它们,稍后导入它们可能会导致错误。

您可以在不同的模块中定义您的模型,但您应该始终将所有模型导入到您的 models.pymodels/__init__.py 中。例如:

# models/topic1.py

class Topic1(models.Model):
    ...

# models/__init__.py

from .topic1 import Topic1

如果您将每个模型导入 models.pymodels/__init__.py,您还可以直接从该文件导入所有模型。在示例中,这意味着您可以从 myapp.models 导入 Topic1,而不仅仅是从 myapp.models.topic1。通过这种方式,您可以跨多个文件组织模型,而无需在需要导入时记住每个模型的精确位置。

关于python - 为 Django 模型使用除 models.py 之外的其他文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061555/

相关文章:

python - 为什么struct中第一个打包的数据是little endian,而其余的都是big endian?

python - 在 Django Rest Framework 中访问 View 集中的请求对象和序列化程序?

python - 为什么 django 模型中的同一模型不能使用 2 个单独的外键

php - 在 Laravel 模型中创建自定义变量/属性

python - 如何检查 pandas 数据帧的列中的所有值是否相等?

python - Python 中 DataFrame 中数组值的 One-hot 编码

python - 我们能在不回溯的情况下解决 N 个皇后吗?以及如何计算以及回溯解决方案的复杂度是多少?

python - Django-在rss feed中指定 channel 图像的方式

ruby-on-rails - 在 Rails 中,如何将多个模型关联到一个将统领所有模型的模型?

ruby - 使用 Redis 的 Rails 4 简单模型缓存