2012-07-03 95 views
0

我有一个非常基本的视图,我正在保存表单。出于某种原因,我不断收到“视图没有返回HttpResponse对象”错误。我在这里看到了这个常见问题,但还没有找到适用于我的解决方案。有人有想法吗?我已经包含下面的代码。非常感谢帮助这个简单的问题!Django“视图没有返回HttpResponse对象。”

def EarlyAdopterSignup(request): 
    f = LandingPageForm(request.POST) 
    if f.is_valid(): 
     email = f.cleaned_data['email'] 
     zip = f.cleaned_data['zip'] 
     adopter = EarlyAdopter(email = email, zip = zip) 
     try: 
      adopter.save() 
      return render_to_response('EarlyAdopterSignup.html') 
     except: 
      return HttpResponse("There was an error with your submission. Please try again.") 

回答

3

那么,首先,如果您的表单无效,您不会返回任何内容。您应该重新显示显示错误的表单。

5

为了跟进A.L的说法,有必要处理表格无效的情况。

通过将绑定的无效表单(f)传递回您的模板,可以很简单地处理此问题。

https://docs.djangoproject.com/en/dev/topics/forms/?from=olddocs#using-a-form-in-a-view

是你需要做的^

def EarlyAdopterSignup(request): 
    f = LandingPageForm(request.POST) 
    if f.is_valid(): 
     email = f.cleaned_data['email'] 
     zip = f.cleaned_data['zip'] 
     adopter = EarlyAdopter(email = email, zip = zip) 
     try: 
      adopter.save() 
      return render_to_response('EarlyAdopterSignup.html') 
     except: 
      return HttpResponse("There was an error with your submission. Please try again.") 

    # handle where not valid 
    return render(request, 'your_form_template.html', { 
    'form': f, # <- your invalid form instance 
}) 
正是一个例证
相关问题