[英]How do I save multiple forms in the same Django View from the same Model? Currently the last form overwrites in save
How do I save multiple forms in the same Django View from the same Model?如何在同一个模型的同一个 Django 视图中保存多个表单?
Currently the last form overwrites in save当前最后一个表单在保存时覆盖
views.py视图.py
def createrequest_1(request):
if request.method == 'POST':
form1 = SurveyNameForm(request.POST)
form2 = Question1Form(request.POST)
form3 = Question2Form(request.POST)
if form1.is_valid() and form2.is_valid() and form3.is_valid():
survey = form1.save(commit=False)
question1 = form2.save(commit=False)
question2 = form3.save(commit=False)
survey.survey_creation_date = datetime.date.today()
survey.customuser = request.user
survey.save()
question1.survey = survey
question1.save()
question2.survey = survey
question2.save()
return HttpResponseRedirect('createrequest_2')
else:
form = SurveyNameForm()
return render(request, 'requestapp/createrequest_1.html', {'SurveyNameForm': SurveyNameForm, 'Question1Form':Question1Form, 'Question2Form': Question2Form})
You must set different prefix for every form.您必须为每个表单设置不同的前缀。 Put instances of forms for render in the template.将要呈现的表单实例放在模板中。
In this way:通过这种方式:
def createrequest_1(request):
form1 = SurveyNameForm(request.POST or None, prefix='survey')
form2 = Question1Form(request.POST or None, prefix='question1')
form3 = Question2Form(request.POST or None, prefix='question2')
if request.method == 'POST':
if form1.is_valid() and form2.is_valid() and form3.is_valid():
survey = form1.save(commit=False)
question1 = form2.save(commit=False)
question2 = form3.save(commit=False)
survey.survey_creation_date = datetime.date.today()
survey.customuser = request.user
survey.save()
question1.survey = survey
question1.save()
question2.survey = survey
question2.save()
return HttpResponseRedirect('createrequest_2')
return render(request, 'requestapp/createrequest_1.html',
{'SurveyNameForm': form1, 'Question1Form': form2, 'Question2Form': form3})
This is explained in https://docs.djangoproject.com/en/3.0/ref/forms/api/#django.forms.Form.prefix这在https://docs.djangoproject.com/en/3.0/ref/forms/api/#django.forms.Form.prefix 中有解释
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.