4

私はこれらのような2つの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()
    serves_pizza = models.BooleanField()

以前Place、次のようなインスタンスを作成しました。

sixth_ave_street_vendor = Place(name='Bobby Hotdogs', address='6th Ave')
sixth_ave_street_vendor.save()

今、ボビーは彼の露天商をレストランにアップグレードしました。コードでそれを行うにはどうすればよいですか?!このコードが機能しない理由:

sixth_ave_restaurant = Restaurant(place=sixth_ave_street_vendor,
                                  serves_hot_dogs=True,
                                  serves_pizza=True)
sixth_ave_restaurant.save()
4

2 に答える 2

4

これが私の回避策です:

sixth_ave_restaurant = Restaurant(place_ptr=sixth_ave_street_vendor,
                                  serves_hot_dogs=True,
                                  serves_pizza=True)
sixth_ave_restaurant.save_base(raw=True)

また、で何か他のことをしたい場合は、通常の後に割り当てられるため、まだ割り当てられていないsixth_ave_restaurantため、もう一度取得する必要があります。idsave()

sixth_ave_restaurant = Restaurant.objects.get(id=sixth_ave_street_vendor.id)
于 2012-12-25T23:38:08.863 に答える
3

place_ptrの代わりに使用する必要がありplaceます。

restaurant = Restaurant.objects.create(place_ptr=sixth_ave_street_vendor,
                                       serves_hot_dogs=True, serves_pizza=True)
于 2012-12-25T22:56:32.800 に答える