我得到的IntegrityError似乎是不可能的:
ShippingAddress.objects.update_or_create(
subscription=subscription,
defaults=address_dict,
)
(其中" subscription"是通过OneToOneField相关的模型的实例)引发错误
IntegrityError: (1062, "Duplicate entry '42' for key 'subscription_id'")
尽管订阅是添加到过滤器的唯一键。更奇怪的是,没有
ShippingAddress.objects.get(
subscription=subscription,
)
,也不
ShippingAddress.objects.filter(
subscription=subscription,
)
引发同样的错误。什么可能搞乱了update()调用?
答案 0 :(得分:0)
错误原因是因为address_dict包含一个" id"生成它时我没注意到的关键。