我的 app_templ 模型定义:
models.py
class TableName(models.Model):
name = models.CharField(max_length=100)
#
class TableAbstract(models.Model):
...
class Meta:
abstract = True
它可以被其他应用程序使用:
app1 / models.py
from app_templ.models import TableAbstract
class Table1(TableAbstract):
...
app2 / models.py
from app_templ.models import TableAbstract
class Table2(TableAbstract):
...
依旧......
在TableName中,有必要注册后继者的模型(表)的名称。
如何通过仅在 app_templ 应用中进行编码来制作?
答案 0 :(得分:0)
从技术上讲,你所描述的听起来不错。您正在定义一个抽象模型,然后使用它来创建多个模型。您需要导入它,并指定您要创建这些表(使用上面的示例)。您应该仔细考虑为什么您在不同的应用程序中多次使用相同的模型(这实际上应该是一个应用程序吗?),但理论上它很好。
我不太明白你的第一个定义,你应该定义你的模型:
class TableBaseClass(models.Model):
name = models.CharField(max_length=100)
class Meta:
abstract = True
abstract = True
意味着模型不是在数据库中创建的(docs)所以为了清楚起见,您可以将此文件存储在与创建表的常规模型类不同的位置。
此代码:
from app_templ.models import TableAbstract
class Table1(TableAbstract):
...
应位于您应用中的models.py