小编Bra*_*own的帖子

django save()禁止防止由于未保存的相关对象而导致数据丢失

我正在尝试使用inlineformset创建一个父模型和一些子模型。以下是我的看法。该代码可用于将初始Rfq模型保存到数据库中,但是在尝试将行保存到inlineformset中时出错。这是一对多关系,但是使用ForeignKey字段完成。

# views.py
def rfq_create(request):
    form = RfqForm(request.POST or None)
    RfqFormSet = inlineformset_factory(Rfq, Rfqlines, form=RfqlinesForm, extra=5, can_delete=True)
    lines_formset = RfqFormSet(request.POST or None)
    title = "Create a new RFQ"
    context = {
        "title": title,
        "form": form,
        "lines_formset": lines_formset,
    }

    if form.is_valid() and lines_formset.is_valid():
        rfq = form.save(commit=False)
        rfq.user = request.user
        rfq.save()
        lines_formset.save()
        rfq_list = Rfq.objects.order_by('rfq_id')[:20]
        title = "RFQ List"
        context = {
            "title": title,
            "rfq_list": rfq_list
        }
        return render(request, "rfq.html", context)

    return render(request, "rfq_create.html", context)
Run Code Online (Sandbox Code Playgroud)

我试过看官方的Django文档,但是它似乎并不适用...还是不是那么简单。

这是我的回溯

Environment:


Request Method: POST
Request …
Run Code Online (Sandbox Code Playgroud)

python django django-forms

1
推荐指数
1
解决办法
3104
查看次数

标签 统计

django ×1

django-forms ×1

python ×1