Django提交两份表格

2024-05-15 23:40:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我对django的表格有疑问。我有两张表格要提交。逻辑是:

  1. If in form1 OIB don't existi in database insert it, and insert form2.
  2. If in form1 OIB exists in database pass, and insert second form(form2), but ask database for id related on OIB from form1.

下面是我的例子视图.py你知道吗

你知道吗视图.py你知道吗

@login_required

@csrf\u保护 def newoutgoinginvice(请求): template=“诺维•伊兹拉兹尼_racun.html文件" 用户\u pk=请求.user.id 组织名称=OrganizationInfo.objects.filter公司(id=user\u pk).values('name')[0] 组织id=request.user.organization\u id你知道吗

if request.method == 'POST':
    form1 = InsertNewCustomer(request.POST)
    form2 = Outdrew(request.POST, request.user)

    if form1.is_valid() and form2.is_valid():
        # First form
        a_1, created = OrganizationInfo.objects.get_or_create(**form1.cleaned_data)

        if a_1:
            # Seconf Form
            a_1.save()
            b = form2.save(commit=False)
            b.user_id = request.user
            b.organization_id = org_id
            b.customer_id = a_1
            b.save()

            return HttpResponseRedirect('/novi_izlazni_racuni/')

        if created:
            # Seconf Form
            b = form2.save(commit=False)
            b.user_id = request.user
            b.organization_id = org_id
            b.customer_id = OrganizationInfo.objects.get(oib=form1.cleaned_data['oib'])
            b.save()

            return HttpResponseRedirect('/novi_izlazni_racuni/')
else:
    form1 = InsertNewCustomer()
    form2 = Outdrew()

variables = RequestContext(request, dict(name=org_name, form1=form1, form2=form2))

return render_to_response(template, variables)

此视图仅在form1中是新的oib并且工作正常时工作,两个表单都插入到数据库中,但如果oib已经存在,则表单不会提交。你知道吗


Tags: andin视图idifrequestsavedatabase