沿着模型继承链移动现有的Django对象

2024-09-29 01:25:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我们知道Django allows us to use model inheritance。但是我想知道是否有可能在创建一个给定模型的现有实例之后,沿着继承链移动它,同时保持应用程序的完整性

示例(来自官方文件):

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

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

所以,如果我有一个现有的实例是Place,我想把它变成Restaurant,有没有安全的方法

我使用的是django1.7和python3.4


Tags: django实例falsedefaultmodelsplacerestaurantlength
1条回答
网友
1楼 · 发布于 2024-09-29 01:25:35

对于沮丧的人,我找到了这样的解决办法

restaurant = Restaurant(place_ptr_id=place.id)
restaurant.__dict__.update(place.__dict__)
restaurant.save()

相关问题 更多 >