2017-06-08 28 views
0

我得到这似乎是一件不可能的事了IntegrityError:IntegrityError上update_or_create

ShippingAddress.objects.update_or_create(
    subscription=subscription, 
    defaults=address_dict, 
) 

(其中“认购”是通过OneToOneField相关模型的实例)引发错误

IntegrityError: (1062, "Duplicate entry '42' for key 'subscription_id'") 

尽管订阅是添加到过滤器的唯一密钥。更奇怪的是,既不

ShippingAddress.objects.get(
    subscription=subscription, 
) 

也不

ShippingAddress.objects.filter(
    subscription=subscription, 
) 

提出同样的错误。什么可能搞乱update()调用?

+0

请显示您的模型和'address_dict'。 – knbk

回答

0

这个错误原来是因为address_dict包含了一个我在生成时没有注意到的“id”键。