Django "The view didn't return an HttpResponse object."
41,811
Solution 1
verify the indentation of your code
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))
if it is get request, render a unbound form
if it is post request and invalid form render a bound form
if it is post request and valid form redirect the page
Solution 2
All view functions must return some kind of HttpResponse object. There exists a code path in your function where None
will be returned instead. This will occur when request.method != 'POST'
and you'll simply "fall off the end" of your function (which will return None
).
Author by
dana
Updated on December 02, 2020Comments
-
dana over 3 years
I have a simple view in which I'm saving a form. The code seems 'clean', but I can't get rid of the error:
"The view didn't return an HttpResponse object."
Though I've searched on the web, I did not find a relevant indication.
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))