我遇到了鸡和蛋的情况。我有一个表单集,用户可以在其中修改现有数据。实例不应直接保存,而是应作为新对象添加。
for fm in attached_deals_formset:
if fm.has_changed():
modified_deal = fm.save(commit=False)
deal = Deal.objects.create(deal_id = modified_deal.deal_id, ... )
for item in modified_deal.sales_item: #m2m
deal.sales_item.add(item)
deal.save_m2m();
我的问题是 sales_item 是一个 m2m 字段。只需遍历它就会崩溃:
for item in modified_deal.sales_item:
'Deal' 实例需要有一个主键值才能使用多对多关系。
不过我不明白,这些是用户在 modified_deal 中选择的多选,为什么只遍历它就会抛出异常?我怎么能解决这个问题?