2015-02-24 62 views
2

我們知道Django allows us to use model inheritance。但是我想知道是否有可能在繼承鏈上創建一個給定模型的現有實例,同時保留應用程序的完整性。沿着模型繼承鏈移動現有的django對象

示例(從官方文檔):

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,是有辦法做到這一點安全?

我使用Django 1.7,Python的3.4

+1

真棒問題的解決,我會做一些玩耍... – awwester 2015-02-24 19:46:07

+0

@ awwester謝謝。我不願意問,因爲我不確定我的前提是否正確。 – 2015-02-24 19:53:13

回答

0

對於低垂我找到了這樣的

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