我对django的表格有疑问。我有两张表格要提交。逻辑是:
- If in form1 OIB don't existi in database insert it, and insert form2.
- If in form1 OIB exists in database pass, and insert second form(form2), but ask database for id related on OIB from form1.
下面是我的例子视图.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已经存在,则表单不会提交。你知道吗
第一个
if
将始终根据this执行。所以if
是不必要的。你知道吗当form1 OIB存在时,您的
elif
将不会按您所希望的那样执行。你知道吗相关问题 更多 >
编程相关推荐