Django 1.8:如何使用来自不同应用程序的模型?
Django 1.8: How use Model from different application?
我的问题是我想创建类似 common-application
的东西(这也可以是标准的 Python 模块),例如:
Model_1
Model_2
Model_3
并且还创建 application_1
和 application_2
,其中来自 common-application
的模型被此使用,例如:
application_1
Model_1
Model_2
Model_4
- app 特定的附加模型
application_2
Model_1
Model_2
Model_3
我真的不知道 models.py
和 apps.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}
我的问题是我想创建类似 common-application
的东西(这也可以是标准的 Python 模块),例如:
Model_1
Model_2
Model_3
并且还创建 application_1
和 application_2
,其中来自 common-application
的模型被此使用,例如:
application_1
Model_1
Model_2
Model_4
- app 特定的附加模型
application_2
Model_1
Model_2
Model_3
我真的不知道 models.py
和 apps.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:
派生的模型 classesclass 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}