0

我对 Django/Pinax 比较陌生,我面临着这种特殊情况。假设我有一个模型“车辆”。现在,“Vehicle”的每个实例都有一些与“vehicle”相关的属性,但它也引用了一个汽车类的实例,其中“汽车”可以是“汽车”、“船”等众多模型之一, “飞机”等

因此,当我创建这个“Vehicle”对象时,我想不知道它引用的是哪个类实例。

但是当我获得所有车辆实例时,我应该能够获得引用汽车的内容。

我怎样才能做到这一点?我已经四处寻找可能的解决方案,但我唯一想到的就是使用 django 的“ContentTypes”框架。但这需要对我想要引用的类进行更改,即。“汽车”、“船”、“飞机”,但在我的情况下这有点棘手,因为在某些情况下这些是外部应用程序。

对我有什么指示吗?

4

1 回答 1

2

解决方案是您提到的通用外键机制。它不需要对引用的对象进行更改。您只需将一个通用外键从 Vehicle 添加到其他对象类型,然后您就可以访问它,而不管它是哪种对象类型。

但是,您似乎正在尝试实现继承。在 django 中,解决方案是使用模型继承

class Vehicle(models.Model):
    ...

class Car(Vehicle):
    ...
于 2010-10-09T20:50:52.510 回答