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

Спасибо!

14
задан dana 21 June 2010 в 13:26
поделиться

2 ответа

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

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

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

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

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

26
ответ дан 1 December 2019 в 08:42
поделиться

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

6
ответ дан 1 December 2019 в 08:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: