Django-如何在表单验证中记住值并显示错误?
我不知道如何在表单验证中记住值和显示错误 这是我的密码: template.html:Django-如何在表单验证中记住值并显示错误?,django,django-forms,django-validation,Django,Django Forms,Django Validation,我不知道如何在表单验证中记住值和显示错误 这是我的密码: template.html: <form method="post" action="/submeter/anuncio/">{% csrf_token %} {{form_main.as_p}} {{form_bicyclead.as_p}} {{form_bicycleadcategory.as_p}} {{form_bicycleaditemkindandpropertyvalueform
<form method="post" action="/submeter/anuncio/">{% csrf_token %}
{{form_main.as_p}}
{{form_bicyclead.as_p}}
{{form_bicycleadcategory.as_p}}
{{form_bicycleaditemkindandpropertyvalueform.as_p}}
<input type="hidden" name="section" value="5" />
<input type="submit">
</form>
关于此模板中的错误的一些线索,并查看是否不获取错误和不记住表单的值
致以最诚挚的问候,我发现您的代码有两个问题,首先是用于验证表单的
if
,当第一个表单返回False
时,其余的将无法验证
其次,当其中一个表单无效且未向其传递任何值时,您正在重新创建表单,因此它们最终为空且没有验证信息。我发现您的代码存在两个问题,首先是用于验证表单的
if
中,当第一个表单返回False
时,其余的表单将无法验证
其次,当其中一个表单无效且未向其传递任何值时,您正在重新创建表单,因此表单最终为空且没有验证信息。我已更新了代码。我可以将哪些变量传递给表单?嗨。是的,同样的结果。没有错误,也没有数据重新填充。所有表单上都没有错误吗?如果您的主窗体无效,其他窗体将不会运行其验证,也不会添加任何错误。完全没有错误。标记“{form_main.as_p}}”将自动显示错误?嗨,安德烈,我想你解决了问题,只是好奇,是什么?我已经更新了代码。我可以将哪些变量传递给表单?嗨。是的,同样的结果。没有错误,也没有数据重新填充。所有表单上都没有错误吗?如果您的主窗体无效,其他窗体将不会运行其验证,也不会添加任何错误。完全没有错误。标记“{form_main.as_p}}”将自动显示错误?嗨,安德烈,我想你解决了这个问题,只是好奇,是什么?
def submit_ad_view(request):
if request.method == 'POST':
model_main = Main()
model_main.section = Section.objects.get(pk=request.POST['section'])
model_main.user = request.user
model_bicyclead = BicycleAd()
model_bicyclead.bicycleadtype = BicycleAdType.objects.get(pk=2)
model_bicyclead.bicycleaditemkind = BicycleAdItemKind.objects.get(pk=4)
model_bicyclead.bicycleadcondition = BicycleAdCondition.objects.get(pk=2)
model_bicyclead.city = GeonamesLocal.objects.get(pk=4803854)
form_main = MainForm(request.POST, instance = model_main)
form_bicyclead = BicycleAdForm(request.POST, instance = model_bicyclead)
form_bicycleadcategory = BicycleAdCategoryForm(request.POST)
if form_main.is_valid() and form_bicyclead.is_valid() and form_bicycleadcategory.is_valid():
main_f = form_main.save()
bicyclead_f = form_bicyclead.save(commit=False)
bicyclead_f.main = main_f
bicyclead_f.save()
bicycleadcategory_f = form_bicycleadcategory.save(commit=False, rel_obj=model_bicyclead)
resultado = 'valid'
else:
resultado = 'n_valid'
return render_to_response('app_p/submit_ad.html', {'form_main': form_main, 'form_bicyclead': form_bicyclead, 'form_bicycleadcategory': form_bicycleadcategory, 'form_bicycleaditemkindandpropertyvalueform': form_bicycleaditemkindandpropertyvalueform}, context_instance=RequestContext(request))
else:
form_main = MainForm()
form_bicyclead = BicycleAdForm()
form_bicycleadcategory = BicycleAdCategoryForm()
form_bicycleaditemkindandpropertyvalueform = BicycleAdItemKindAndPropertyValueForm()
return render_to_response('app_p/submit_ad.html', {'form_main': form_main, 'form_bicyclead': form_bicyclead, 'form_bicycleadcategory': form_bicycleadcategory, 'form_bicycleaditemkindandpropertyvalueform': form_bicycleaditemkindandpropertyvalueform}, context_instance=RequestContext(request))