Django模型多表继承:创建现有实例的超级实例(强制转换)

时间:2013-11-05 19:19:51

标签: python django inheritance

我在Django中有以下类层次结构,使用多表继承:

class Vehicle(models.Model):
   name = models.CharField(blank=True)

class Car(Vehicle):
   color = models.CharField(blank=True) 

当我使用多表继承时,在数据库级别,有两个数据库表,一个用于Vehicle,另一个用于Car。他们之间也存在OneToOne关系。

我的数据库上有一些Car对象。我想将这些对象转换为Vehicle,并删除它们的“Car”部分。如果我做Car.objects.all(),我希望没有出现这些“前车”。

要获取超类实例,我可以这样做:

car = Car()
vehicle = car.vehicle

但是如何在不删除“车辆”对象的情况下安全删除“car”对象?

我找到了一些与向下转换相关的答案(从超类实例创建子类实例并将其存储在db上,请参阅:Django model inheritance: create sub-instance of existing instance (downcast)?),但我还没有找到关于此案例的答案。

0 个答案:

没有答案