python - 1 个 django 应用程序中约有 20 个模型

标签 python django django-models

我已经开始为自己开发一个通过浏览器运行的本地应用程序。最近浏览了 django 教程,我认为使用 django 可能比使用普通 python 更好。

有一个问题:我至少有 20 个模型,每个模型都有很多功能。很简单,它将创建一个巨大的模型文件,并且可能还会创建巨大的 View 。如何拆分它们?

models are all related所以我不能简单地将它们变成单独的应用程序吗?

最佳答案

这是一个很常见的需求...我无法想象要翻阅一个 10,000 行长的 models.py 文件 :-)

您可以将 models.py 文件(以及 views.py 也)拆分为一个 pacakge。在这种情况下,您的项目树将如下所示:

/my_proj
    /myapp
        /models
            __init__.py
            person.py

__init__.py 文件使文件夹成为一个包。唯一的问题是确保为您的模型定义一个内部 Meta 类,以指示模型的 app_label,否则 Django 将无法构建您的模式:

class Person(models.Model):
    name = models.CharField(max_length=128)

    class Meta:
        app_label = 'myapp'

完成后,将模型导入您的 __init__.py 文件,以便 Django 和同步数据库找到它:

from person import Person

这样你仍然可以 from myapp.models import Person

关于python - 1 个 django 应用程序中约有 20 个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/859192/

相关文章:

python - App Engine 实体到字典

python - 如何向 bravado 创建的 API 客户端添加授权 header

python - 从python中为postgresql中的union中的每个查询选择特定列

python - Django 2.0 |包含多个 urls conf 命名空间

python - 在 Django 中获取 ManytoMany 的错误?

python - 关系数据库模型中的Django POST方法

python - 如何在 MySQL Workbench for Mac (Big Sur) 中添加系统路径路径

python - 加载数据时 Django 中出现 Unicode 错误

django - 如何组织用户运行项目的不同部分?

database - 在 Django 中,如何在我的 models.py 中包含一些默认记录?