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

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()

【讨论】:

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

表单没有正确地将数据插入数据库 [Laravel][Eloquent]

带有“数量”下拉列表的 PHP 表单可将输入的数据行数插入表单

Laravel 批量插入许多具有相同形式的条目

表单数据插入数据库后如何清除

HTML表单未在访问数据库中插入数据

在MySQL中插入表单数据?