带有没有指针的单独(相同)表的 Django 多表继承

Pal*_*ala 5 python database django django-models

我正在对现有模型(完全来自另一个应用程序)进行子类化,并希望我的模型拥有自己的数据库表。原始表的相同克隆/副本,而不仅仅是带有指向存储在“父”表中的数据的指针的表。

这是我的模型:

class A (models.Model):
    name = models.CharField('name')

class MyA (A):
    class Meta:
        db_table = 'My_A'
Run Code Online (Sandbox Code Playgroud)

这是我的数据库表:

CREATE TABLE A
(
  id serial NOT NULL,
  "name" character varying(50) NOT NULL,
  ...
)

CREATE TABLE My_A
(
  A_ptr_id integer NOT NULL,
  ...
)
Run Code Online (Sandbox Code Playgroud)

这就是我想要的:

CREATE TABLE A
(
  id serial NOT NULL,
  "name" character varying(50) NOT NULL,
  ...
)

CREATE TABLE My_A
(
  id serial NOT NULL,
  "name" character varying(50) NOT NULL,
  ...
)
Run Code Online (Sandbox Code Playgroud)

编辑:我最终复制粘贴了第 3 方模型

sch*_*cki -1

当您继承 Django 模型时,它始终会生成与父模型隐式的 1-1 关系。Django 只会为您继承的模型生成字段。总的来说,这对我来说是完全有意义的。但对于你的用例来说很麻烦。由于我们讨论的是 Django 核心功能,因此可能很难解决。您可以尝试将第 3 方模型作为代理模型复制并粘贴到代码中,并从那里继承。

更新:但是为什么要将数据分成不同的表呢?最终目标是什么?