尝试创建自定义模型时出现 Django 错误 class

Django error while trying to create custom model class

我开始在此处指定的包中组织我的模型:https://docs.djangoproject.com/en/1.11/topics/db/models/#organizing-models-in-a-package

我正在使用 旧版 Oracle 数据库

我还创建了一个包含模型 class 的一些 extensions/inheritances 的模块,以方便创建包含重复字段的多个 classes

这是我的结构:

models/
    __init__.py
    geo_classes.py
    tables.py

错误如下:

django.db.utils.DatabaseError: ORA-00904: "TABLE_NAME"."TABLECLASS_PTR_ID": invalid identifier

我在网上找不到任何关于这个 PTR_ID 它试图抓住的东西,也许我错过了一些关于扩展基础模型的东西?


文件(仅重要部分):

geo_classes.py :

from django.db import models

class EsriTable(models.Model):
    objectid = models.BigIntegerField(unique=True, editable=False, verbose_name='OBJECTID')    

class TableClass(EsriTable):
    cod = models.BigIntegerField(primary_key=True)

    def __str__(self):
        return str(self.cod)

tables.py :

from .geo_classes import TableClass
from django.db import models

class MyClass(TableClass):
    #Fields
    name = models.CharField(max_length=50)
    #Keys
    #Relations

    class Meta:
        managed = False
        db_table = 'TABLE_NAME'

您正在使用多重 table 继承。您的每个模型都是一个单独的 table,包括基础 class。 Django 设置一个指针 id 指向父 table.

然而,这显然不是你想要的。您的两个基础 class 实际上都不是单独的 table。所以你需要使用抽象继承:给这两个模型自己的内部 Meta class,并设置 abstract = True.