Django Inlineformset形成主键错误

时间:2018-08-16 00:54:44

标签: python django view model formset

因此,我对我的项目有此看法,这是为了保存产品的公式,其中有两种形式:公式和公式的行(Formula_materia)。 问题是,当我尝试更新内联表单集时会引发表单验证错误。它无法识别主键,并指出该字段为空(它是AutoField,并且不在表单上呈现)。 我搜索了所有网络,但找不到可以帮助我的答案。

错误: pkid_formula_materia(此字段为必填)

在视图上可能有错误?

视图(我知道它很大且令人困惑,对不起):

def formula_produto(request, id_produto):
    produto = Produto.objects.get(pkid_produto=id_produto)
    # Checks if there is already a formula to that product
    try:
        Formula = Formulaproduto.objects.get(fkid_produto=id_produto)
    except:
        Formula = None
    # Makes the formset based on two models
    formset_materias = inlineformset_factory(Formulaproduto,Formula_materia,extra=0,min_num=1,form=Formula_materiaForm)

if request.POST: with transaction.atomic(): form_formula = FormulaprodutoForm(request.POST, instance=Formula) if form_formula.is_valid(): formula = formula.save(commit=False) formula.fkid_produto = produto formula.save() # Use as instance the existing Formula or the newly created if Formula and Formula != None: forms_materia = formset_materias(request.POST, instance=Formula) else: forms_materia = formset_materias(request.POST, instance=formula) for form in forms_materia: if form.is_valid(): # Here it does not validate form.save() return HttpResponseRedirect(url) else: form_formula = FormulaprodutoForm(instance=Formula) forms_materia = formset_materias(instance=Formula) context = { "form_formula": form_formula, "forms_materia": forms_materia, "produto": produto, } return render(request, "iframe/produtos/formula_produto.html", context)

0 个答案:

没有答案