【问题标题】:The view blog.views.contacto didn't return an HttpResponse object视图 blog.views.contacto 没有返回 HttpResponse 对象
【发布时间】:2014-05-05 18:03:38
【问题描述】:

我正在开发我的第一个 django 项目。我一直在尝试创建一个简单的联系表单,但出现错误:

ValueError 在 /blog/contacto/ 视图 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 中的表单文档,我所做的视图几乎与文档中的视图相同。

谁能帮帮我?

【问题讨论】:

    标签: django forms views httpresponse


    【解决方案1】:

    如果request.method 不是POST,您的视图不会返回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:  # <-- WATCH WHERE ELSE IS
            form = Formulario() #un Unbound form
    
        return render(request, 'contacto.html',{'form':form,})
    

    另请参阅描述此标准表单视图模式的 relevant example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-25
      • 2011-03-06
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多