如何在Django的1个模板中渲染和保存2个模型

时间:2019-03-26 12:12:37

标签: django model foreign-keys

我有2个带有ForeignKey的模型 关系。

Model1

………

Model2

fc = models.ForeignKey(Model1) …...

没有代理和抽象模型...  需要吗?

是否有机会在1个模板中进行渲染? (已经完成)并同时将这两种形式保存在相应的模型中?我已经写了一些代码(波纹管)..它可以工作,但是在辅助模型fc_id(负责连接到model1对应对象的键将设置为null,即,model2的数据保存,但与model1不相关。 Model1保存确定。

很抱歉这个平凡的问题

THX

尝试Django 2 models 1 form


def viewname(request):
    if request.method == 'POST':
        form1 = FORM1(request.POST, request.FILES, prefix="form1")
        form2 = FORM2(request.POST, request.FILES, prefix="form2")
        if form1.is_valid() and form2.is_valid():
            form1.save()  # has to do smt with COMMIT=FALSE do smt and COMMIT=TRUE  then ???
            form2.save()
            return redirect(reverse_lazy("someURL"))
    else:
        form1 = FORM1(prefix="form1")
        form2 = FORM2(prefix="form2")
        context = {"form1": form1, "form2": form2}
        return render(request, "some.html", context)

model2和model1数据应根据外键关系保存,但不能单独保存

1 个答案:

答案 0 :(得分:1)

这将起作用:

model1 = form1.save()
model2 = form2.save(commit=False)
model2.fc = model1
model2.save()