python - The view didn't return an HttpResponse object. It returned None instead. Request Method: POST -
the problem appears when submit form. few days ago worked, changed nothing in code, fails. possible different module makes part of code crashed? traceback:
environment:
request method: post request url: http://127.0.0.1:8000/users/new/  django version: 1.7.3 python version: 3.4.0 installed applications: ('django.contrib.admin',  'django.contrib.auth',  'django.contrib.contenttypes',  'django.contrib.sessions',  'django.contrib.messages',  'django.contrib.staticfiles',  'mojblog',  'users') installed middleware: ('django.contrib.sessions.middleware.sessionmiddleware',  'django.middleware.common.commonmiddleware',  'django.middleware.csrf.csrfviewmiddleware',  'django.contrib.auth.middleware.authenticationmiddleware',  'django.contrib.auth.middleware.sessionauthenticationmiddleware',  'django.contrib.messages.middleware.messagemiddleware',  'django.middleware.clickjacking.xframeoptionsmiddleware')   traceback: file "/home/marta/django/djangovenv/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response   130.                                  % (callback.__module__, view_name))  exception type: valueerror @ /users/new/ exception value: view users.views.create didn't return httpresponse object. returned none instead.   code:
from django.shortcuts import render, redirect django.http import httpresponse users.forms import usercreationform django.contrib.auth.models import user users.models import profile   def test(request):     return httpresponse('users!')   def create(request):     if request.method =="post":         new_user=user()         form = usercreationform(request.post, instance=new_user)         if form.is_valid():             new_user=form.save(commit=false)             new_user.is_active=false             new_user.save()             return redirect("users:new")      else:         form = usercreationform()         return render(request, 'users/create.html', {'form1': form})       # else:     #   return httpresponse("something")          def activate(request, key):      profile=profile.objects.get(secret=key)     user=profile.user     user.is_active=true     user.save()        return render(request, 'users/activate.html', {})      
in create view, if request post form not valid, code not return anything.
rather have separate block, should use standard pattern:
if request.method =="post":     form = ...     if form.is_valid():         ...         return redirect(...) else:     form = ... return render(request, 'users/create.html', {'form1': form})   in case final return catches case, , re-renders form displays errors.
Comments
Post a Comment