我正在使用multi-table-inheritance,想知道如何从父类(super class)的实例创建继承的类型。

使用文档中给出的示例:

class Place(models.Model):
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=80)

class Restaurant(Place):
    serves_hot_dogs = models.BooleanField()
    serves_pizza = models.BooleanField()

现在,当您创建Restaurant时,您会自动创建一个Place,这很好,并且可以实现我期望和想要的行为。

但是,如果我制作了Place,后来又决定要转换为特定类型(例如Restaurant),该怎么办?如何使用现有的Restaurant创建Place

最佳答案

多表继承只是Place和Restaurant之间的OneToOneField关系。

place = Place.objects.get(id=1)

# Create a restaurant using existing Place
restaurant = Resturant(place_ptr=place)
restaurant.save()

关于django - Django模型继承:使用现有的父类(super class)创建子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9821935/

10-12 14:16