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