我在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)?),但我还没有找到关于此案例的答案。