在表单传递的表单集中插入数据

Posted

技术标签:

【中文标题】在表单传递的表单集中插入数据【英文标题】:inserting a data in a formset passed by a form 【发布时间】:2021-11-13 23:01:48 【问题描述】:

您好,我时出现此错误,这是我的浏览器中出现的错误:

NOT NULL 约束失败:devtest_datigruppi.gruppi_scheda_id

它实际上看不到这种变化:groups.gruppi_scheda = Schede.objects.get (tab_name = tabName) 但通过打印对我来说是正确的事情

schedaName = schede_form.cleaned_data['nome_scheda']
scheda = schede_form.save(commit = False)
scheda.utente = request.user
scheda.save()

 #gruppi
 if gruppi_formset.is_valid():
  for gruppi in gruppi_formset:
   gruppi.save(commit = False)
   gruppi.gruppi_scheda = Schede.objects.get(nome_scheda = schedaName)
   //print(gruppi.gruppi_scheda)
   gruppi.save()

【问题讨论】:

【参考方案1】:

您必须将gruppi.save(commit=False) 的返回值分配给一个变量并在那里更新gruppi_scheda 属性:

gruppi_instance = gruppi.save(commit=False)
gruppi_instance.gruppi_scheda = Schede.objects.get(nome_scheda = schedaName)
gruppi_instance.save()

【讨论】:

以上是关于在表单传递的表单集中插入数据的主要内容,如果未能解决你的问题,请参考以下文章