我正在研究我的第一个django项目。我一直试图创建一个简单的联系表单,但我得到错误:
/ blog / contacto /的ValueError / 视图blog.views.contacto没有返回HttpResponse对象。
def contacto (request):
if request.method == 'POST': #Si e formulario es enviado...
form = Formulario(request.POST)
if form.is_valid(): #Si son validos los datos del formulario
return HttpResponseRedirect('/blog/gracias') #redireccion a gracias
else:
form = Formulario() #un Unbound form
return render(request, 'contacto.html',{'form':form,})
我不明白为什么会这样,我检查了django中的表单文档,我所做的视图几乎与文档中的视图相同。
任何人都可以帮助我吗?
答案 0 :(得分:1)
如果HttpResponse
不是request.method
,您的观点不会返回POST
。
存在缩进问题。如果表单未提交,您需要返回未绑定表单:
def contacto (request):
if request.method == 'POST': #Si e formulario es enviado...
form = Formulario(request.POST)
if form.is_valid(): #Si son validos los datos del formulario
return HttpResponseRedirect('/blog/gracias') #redireccion a gracias
else: # <-- WATCH WHERE ELSE IS
form = Formulario() #un Unbound form
return render(request, 'contacto.html',{'form':form,})
另请参阅描述此标准表单视图模式的relevant example。