Django模型继承: Create a subclass using existing super class

标签 django inheritance model

我正在使用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),该怎么办?如何使用现有的地点创建餐厅

最佳答案

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

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

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

关于Django模型继承: Create a subclass using existing super class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9821935/

相关文章:

javascript - 使用 django/javascript 保存 DnD 状态

django - 模板不存在 Django 错误

python - 如何使 SQL 返回重复项?

java - 如何用java中的接口(interface)覆盖方法

c# - C#中的继承和多态

Laravel - 在 Eloquent 模型中获取枚举值

python - 寻找 Django 社交网络应用示例

c++ - 无法访问 C++ 中类模板继承第二级上的 protected 类成员

php - 检查 laravel 模型是否已保存或查询是否已执行

mysql - 如何在 Laravel 中表示有序递归关系?