关于抽象模型继承人的收集和数据记录

2024-05-15 21:44:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序模板模型定义:

型号.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中登记继任者的型号(表格)名称

如何仅通过在应用程序中编码来实现


Tags: frompy模型import模板app应用程序model
1条回答
网友
1楼 · 发布于 2024-05-15 21:44:42

从技术上讲,你所描述的听起来不错。您正在定义一个抽象模型,然后使用它创建多个模型。您确实需要导入它,并指定要创建这些表(使用上面的示例)。你应该仔细考虑一下为什么你在不同的应用程序中多次使用同一个模型(这应该是一个应用程序吗?),但理论上是可以的

我不太理解您的第一个定义,您可能应该这样定义您的模型:

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

相关问题 更多 >