Django 1.8:如何使用来自不同应用程序的模型?

Django 1.8: How use Model from different application?

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

并且还创建 application_1application_2,其中来自 common-application 的模型被此使用,例如:

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

可能吗?

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

您可以将 common_application 的 models.py 文件中的通用模型实现为抽象模型,方法是将以下内容添加到模型的 class:

class Meta:
    abstract = True

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

from common_application.models import Model_1, Model_2, Model_3

然后实例化将从抽象模型 class:

派生的模型 classes
class Model_1a(Model_1):

可以找到有关模型 class 继承的更多详细信息 here

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)

如果您想将一个应用程序的模型用于另一个应用程序 例如第一个应用程序模型看起来像这样 This is the first modal that I want to use in the different app look like this

在另一个应用程序的第二个模型中,这取决于您想在哪里使用该模式,对于我来说,我在 view.py 中使用该模型来检索信息 In this view import your model by writing from {yourappname}.models import {modelname}