Django "Представление не возвратило объект HttpResponse".

У меня есть простой вид, в котором я сохраняю форму.  код кажется "чистым", но я не могу избавиться от ошибки: "В представлении не появился объект 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

проверьте отступ вашего кода

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

если это запрос на получение, сделать несвязанную форму

если это почтовый запрос и недопустимая форма, выведите связанную форму

если это сообщение и действительная форма перенаправляют страницу

Ответ 2

Все функции просмотра должны возвращать какой-то объект HttpResponse. В вашей функции существует путь к коду, где вместо этого возвращается None. Это произойдет, когда request.method != 'POST' и вы просто "упадете с конца" вашей функции (которая вернет None).