2010-06-21 12 views
14

Ich habe eine einfache Ansicht, in der ich ein Formular speichere. der Code scheint 'sauber', aber ich kann den Fehler nicht loswerden: "Die Ansicht hat kein HttpResponse-Objekt zurückgegeben." Obwohl ich im Internet gesucht habe, habe ich keine relevante Angabe gefunden.Django "Die Ansicht hat kein HttpResponse-Objekt zurückgegeben."

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)) 

Vielen Dank!

+1

Die triviale Frage: Sie senden eine POST-Anfrage? – TooAngel

Antwort

25

den Einzug Ihres Codes überprüfen

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)) 

wenn es bekommen Anfrage ist, machen eine ungebundene Form

wenn es Post-Anforderung und ungültige Form ist

eine gebundene Form machen, wenn es Post Anfrage und gültiges Formular umleiten die Seite

+0

Absolut korrekt! – KevinDTimm

+0

Sie haben Recht. Ich hatte tatsächlich ein Einrückungsproblem! Danke! – dana

+0

Das ist korrekt und plötzlich funktioniert die Validierung – kta

6

Alle Ansichtsfunktionen müssen irgendeine Art von HttpResponse-Objekt zurückgeben. In Ihrer Funktion existiert ein Code-Pfad, in dem None zurückgegeben wird. Dies geschieht, wenn request.method != 'POST' und Sie einfach "vom Ende fallen" von Ihrer Funktion (die None zurückgeben wird).

+0

ja. Du hast recht. Mein Problem war noch trivialer, obwohl ich nicht sehen konnte. Ich hatte ein Einrückungsproblem, und dieses "andere" wurde als für das zweite If interpretiert. Vielen Dank für Ihr Interesse! :) – dana

Verwandte Themen