Django包括从项目到多个应用程序的models.py

时间:2014-07-08 09:10:22

标签: python django django-models import

我想知道是否有办法将models.py从项目目录包含/导入到多个应用程序,而无需在每个应用程序中复制模型。谢谢!

3 个答案:

答案 0 :(得分:3)

每个应用必须在app文件夹中有自己的models.py。您在app文件夹中有models.py,您可以在项目的任何文件中编写以下import语句:

from myapp.models import model_to_import

如果你在任何app文件夹或任何其他文件夹之外有models.py,那么请确保该文件夹包含一个(带有两个下划线)init(带有两个下划线).py文件,然后在你想要的文件中写下以下内容输入:

from folder_name import models
from models import model_to_import

答案 1 :(得分:0)

您并不打算将模型直接放在Django的项目级别上。每个模型都必须与特定的应用程序相关联。另一方面,您可以在应用程序之间导入模型。

如果您觉得需要项目级别的模型,那就意味着您无法将您的功能正确地划分为应用程序。不应该有任何理由拥有"项目级别的模型" (或"项目级别视图"就此而言)。您只需将功能拆分为单独的应用程序。

假设您正在为学校设计内部网网站。你会有一个应对学生的应用程序'帐户,另一个应用程序生成时间表,另一个应用程序生成时间表等。每个应用程序定义自己的模型(没有"项目级模型"),但应用程序可以导入彼此模型(所以留言板帖子可以有一个ForeignKey字段指向来自"学生" app)的学生。

答案 2 :(得分:0)

您可以创建一个应用程序,其中包含项目范围内需要的任何模型,例如:

python manage.py startapp projectcore

然后

from projectcore.models import MyModel

根据需要。

但是如果可以的话,最好听Ludwik并尝试进行重组!