2010-06-21 61 views
14

我有一個簡單的看法,在我保存表單。 代碼似乎'乾淨',但我無法擺脫錯誤:「視圖沒有返回一個HttpResponse對象。」 雖然我在網上搜索,但我沒有找到相關的指示。Django「該視圖沒有返回HttpResponse對象。」

def classroom_privacy(request,classname): 
     theclass = Classroom.objects.get(classname=classname) 
    if request.method == 'POST': 
     form = PrivacyClass(request.POST) 
     if form.is_valid(): 
      new_obj = form.save(commit=False) 
      new_obj.save() 
      return HttpResponseRedirect('.')  
     else: 
      form = PrivacyClass()  
     return render_to_response('classroom/classroom_privacy.html', {'form': form}, 
      context_instance=RequestContext(request)) 

謝謝!

+1

微不足道的問題:您發送POST請求? – TooAngel 2010-06-21 13:30:15

回答

25

驗證碼

def classroom_privacy(request, classname): 
    theclass = Classroom.objects.get(classname=classname) 
    if request.method == 'POST': 
     form = PrivacyClass(request.POST) 
     if form.is_valid(): 
      new_obj = form.save(commit=False) 
      new_obj.save() 
      return HttpResponseRedirect('.') 
    else: 
     form = PrivacyClass() 

    return render_to_response('classroom/classroom_privacy.html', {'form': form}, context_instance=RequestContext(request)) 

的縮進如果是get請求,呈現綁定形式

如果是POST請求和無效的形式呈現綁定形式

如果是發佈請求和有效表單重定向頁面

+0

絕對正確! – KevinDTimm 2010-06-21 13:41:49

+0

你是對的。我其實有縮進問題!謝謝! – dana 2010-06-21 13:44:02

+0

這是正確的,所有的突然驗證現在正在工作 – kta 2013-02-25 07:48:20

6

所有視圖函數都必須返回某種HttpResponse對象。在你的函數中存在一個代碼路徑,其中None將被返回。這會在request.method != 'POST'發生時發生,並且您只會「失去功能」(將返回None)。

+0

是的。你是對的。儘管我看不到,但我的問題還是比較瑣碎。我有一個縮進問題,而'else'被解釋爲第二個if。 非常感謝您的關注! :) – dana 2010-06-21 14:03:37

相關問題