我正在尝试创建与现有数据模型兼容的 Django ORM 映射,因此我正在尝试使用现有的一组表和列名。
我有一个多表继承情况,其中类 InformationObject 派生自类 Object。我想让 Django 以通常的方式处理这个问题:
class Object(models.Model):
class Meta:
db_table = "object"
class InformationObject(Object):
class Meta:
db_table = "information_object"
在这种情况下,Django 会自动在继承模型上创建一个名为object_ptr_id的一对一字段。但是,在我被限制使用的架构上,对 Object 的引用简称为“id”。所以:
有没有办法以某种方式指定 Django 自动神奇地用于多表继承的列的名称?
否则我将不得不使用的替代方法是使用显式的一对一字段,但是我将无法从 Object 模型继承非数据库方法:
class Object(models.Model):
class Meta:
db_table = "object"
class InformationObject(models.Model):
class Meta:
db_table = "information_object"
id = models.OneToOneField(Object, primary_key=True, db_column="id")
有任何想法吗?也许我可以为它们创建一个公共基类并将非数据库方法放在那里......?