deals_formset_factory = modelformset_factory(Deal, form=DealCForm, extra=1)
attached_deals_formset = deals_formset_factory(request.POST, prefix='deals')
由于我的Deal
模型的某些字段未显示在表单中,因此无法由用户设置(但 M2M 字段已显示并且可以由用户设置),我不能只做一个
for fm in attached_deals_formset:
if fm.has_changed():
fm.save()
因为它会破裂。
所以理论上这种情况下的想法是做
deal = fm.save(commit=False)
...
deal.save()
但这并不能在交易中保存我的 M2M 字段。直通表保持不变。解决这个问题的最佳方法是什么?
class Deal(models.Model):
deal_id = UUIDField()
....
sales_item = models.ManyToManyField(SalesItem)