1
我有一個名爲Restaurant
Django的Model.objects.all()和Model.objects.get(PK =?)返回兩個不同的結果
class Restaurant(models.Model):
place = models.OneToOneField(Place, primary_key=True)
serves_pizza = models.BooleanField()
serves_hotdog = models.BooleanField()
def __unicode__(self):
return u'%s the restaurant' % self.place.name
查詢與Restaurant.objects.all()
和Restaurant.objects.get()
產生兩種不同結果的基本模式只有前者是正確的。
# this is correct
>>> r=Restaurant.objects.all()
>>> r
[<Restaurant: Hogwarts the restaurant>, <Restaurant: Domino the restaurant>]
>>> r[0].serves_hotdog
True
# this is not correct
>>> r0=Restaurant.objects.get(pk=4556376185503744)
>>> r0.serves_hotdog
False
# although they have the same pk
>>> r0.pk == r[0].pk
True
# their property values are different
>>> r[0].serves_hotdog == r0.serves_hotdog
False
>>> r[0].serves_pizza == r0.serves_pizza
False
有沒有人看過類似的東西?
你確定他們有相同的PK?您是否嘗試將'r0 == r [0]'更改爲'r0.pk == r [0] .pk' –
是的。 'r0.pk == r [0] .pk'返回True。 –
您是否在任何時候修改了對象? –