1

我的问题是我想创建类似的东西common-application(这也可以是标准的 Python 模块),例如:

  • Model_1
  • Model_2
  • Model_3

并且还创建application_1application_2从中common-application使用模型,例如:

  • application_1

    • Model_1
    • Model_2
    • Model_4-应用特定的附加模型
  • application_2

    • Model_1
    • Model_2
    • Model_3

models.py真的我不知道apps.py应该是什么样子.. :/

是否可以 ?

PS。如果我想写DATABASE_ROUTER在两个数据库之间拆分这个应用程序,这个问题真的无法解决吗?

4

3 回答 3

2

您可以通过将以下内容添加到模型的类中,将 's models.py 文件中的公共模型实现common_application为抽象模型:

class Meta:
    abstract = True

然后,在其他应用程序中,您可以像这样导入常用模型:

from common_application.models import Model_1, Model_2, Model_3

然后实例化将从抽象模型类派生的模型类:

class Model_1a(Model_1):

关于模型类继承的更多细节可以在这里找到

于 2015-05-31T12:46:10.900 回答
0
application1
    models (directory - package)
        __init__.py
        model1.py
        model2.py
        model3.py 

进入init .py 文件,您可以从 model*.py 导入所有模型

from model1 import *
from model2 import *
from model3 import *

还可以使用模型 Meta 设置 db_tablespace ( https://docs.djangoproject.com/en/1.8/ref/models/options )

于 2015-05-31T13:43:45.410 回答
0

如果您想将模型从一个应用程序使用到另一个应用程序例如第一个应用程序模型看起来像这样 这是我想在不同应用程序中使用的第一个模态看起来像这样

在不同应用程序的第二个模型中,这取决于您要在哪里使用该模式,对于我来说,我在 view.py 中使用该模型来检索信息 在此视图中,通过写入 from {yourappname}.models import {modelname 来导入您的模型}

于 2020-02-26T14:14:33.527 回答