私は鶏が先か卵が先かという状況に遭遇しました。ユーザーが既存のデータを変更できるフォームセットがあります。ただし、インスタンスは直接保存されませんが、代わりに新しいオブジェクトとして追加されます。
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();
私の問題は、m2mフィールドであるsales_itemです。それを通過するだけでクラッシュします:
for item in modified_deal.sales_item:
「Deal」インスタンスは、多対多の関係を使用する前に、主キー値を持っている必要があります。
わかりませんが、これらはユーザーがmodified_deal内で選択した複数選択ですが、トラバースするだけで例外がスローされるのはなぜですか?そして、どうすればこれを解決できますか?