Python 关于抽象模型继承人的收集和数据记录
我的应用程序模板模型定义: 型号.pyPython 关于抽象模型继承人的收集和数据记录,python,django,Python,Django,我的应用程序模板模型定义: 型号.py class TableName(models.Model): name = models.CharField(max_length=100) # class TableAbstract(models.Model): ... class Meta: abstract = True from app_templ.models import TableAbstract class Table1(TableAbst
class TableName(models.Model):
name = models.CharField(max_length=100)
#
class TableAbstract(models.Model):
...
class Meta:
abstract = True
from app_templ.models import TableAbstract
class Table1(TableAbstract):
...
from app_templ.models import TableAbstract
class Table2(TableAbstract):
...
它可以被其他应用程序使用:
app1/models.py
class TableName(models.Model):
name = models.CharField(max_length=100)
#
class TableAbstract(models.Model):
...
class Meta:
abstract = True
from app_templ.models import TableAbstract
class Table1(TableAbstract):
...
from app_templ.models import TableAbstract
class Table2(TableAbstract):
...
app2/models.py
class TableName(models.Model):
name = models.CharField(max_length=100)
#
class TableAbstract(models.Model):
...
class Meta:
abstract = True
from app_templ.models import TableAbstract
class Table1(TableAbstract):
...
from app_templ.models import TableAbstract
class Table2(TableAbstract):
...
等等
我有必要在TableName中登记继任者的型号(表格)名称
如何通过仅在应用程序模板中编码来实现它?从技术上讲,您所描述的内容听起来不错。您正在定义一个抽象模型,然后使用它创建多个模型。您确实需要导入它,并指定要创建这些表(使用上面的示例)。你应该仔细考虑为什么你在不同的应用程序中多次使用同一个模型(这应该是一个应用程序吗?),但从理论上讲这是可以的 我不太理解您的第一个定义,您可能应该这样定义您的模型:
class TableBaseClass(models.Model):
name = models.CharField(max_length=100)
class Meta:
abstract = True
abstract=True
意味着模型不是在数据库中创建的(),因此为了清晰起见,可以将此文件存储在与创建表的常规模型类不同的位置
此代码:
from app_templ.models import TableAbstract
class Table1(TableAbstract):
...
应该在应用程序中的
models.py
中从技术上讲,您描述的内容听起来不错。您正在定义一个抽象模型,然后使用它创建多个模型。您确实需要导入它,并指定要创建这些表(使用上面的示例)。你应该仔细考虑为什么你在不同的应用程序中多次使用同一个模型(这应该是一个应用程序吗?),但从理论上讲这是可以的
我不太理解您的第一个定义,您可能应该这样定义您的模型:
class TableBaseClass(models.Model):
name = models.CharField(max_length=100)
class Meta:
abstract = True
abstract=True
意味着模型不是在数据库中创建的(),因此为了清晰起见,可以将此文件存储在与创建表的常规模型类不同的位置
此代码:
from app_templ.models import TableAbstract
class Table1(TableAbstract):
...
应该在你的应用程序中的
models.py
app_temp-我的应用程序中。由于该模型将在使用app_temp的应用程序中调用-我还不知道。数据库中表的名称(使用PostgreSQL)我需要微调表(将它们连接到PostgreSQL中的触发器函数)我没有完全描述这个问题。但我的问题的答案是,das我理解——在我的应用程序(app_temp)中,在哪里写这段代码。“class TableAbstract”提供了一个带有创建主键的特殊算法的表。我需要将所有继承人连接到触发函数。为此,请填写表格“TableName”。有必要在数据库中的表格app|U templ|U TableName中收集id | name:1 | app1|U table1;2 |附录2|表2。。。代码应该写在app_temp/models.pyapp_temp-my app中。由于该模型将在使用app_temp的应用程序中调用-我还不知道。数据库中表的名称(使用PostgreSQL)我需要微调表(将它们连接到PostgreSQL中的触发器函数)我没有完全描述这个问题。但我的问题的答案是,das我理解——在我的应用程序(app_temp)中,在哪里写这段代码。“class TableAbstract”提供了一个带有创建主键的特殊算法的表。我需要将所有继承人连接到触发函数。为此,请填写表格“TableName”。有必要在数据库中的表格app|U templ|U TableName中收集id | name:1 | app1|U table1;2 |附录2|表2。。。代码应该在app_temp/models.py中编写