Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 关于抽象模型继承人的收集和数据记录_Python_Django - Fatal编程技术网

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

Python 关于抽象模型继承人的收集和数据记录,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

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

型号.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):
    ...
它可以被其他应用程序使用:

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中编写