def create_user(request): context = {} context_instance = RequestContext(request) form = UserCreateForm(request.POST or None) context['form'] = form if request.user.is_authenticated(): return redirect('/user/dashboard') if request.method == 'POST' and form.is_valid(): first_name = form.cleaned_data['first_name'] last_name = form.cleaned_data['last_name'] username = form.cleaned_data['username'] password = form.cleaned_data['password'] email = form.cleaned_data['email'] phone = form.cleaned_data['phone'] try: users_manager.create_user(first_name, last_name, username, password, email, phone) # authenticate and login user = authenticate(username=username, password=password) login_auth(request, user) return redirect('/user/dashboard') except Exception as exc: # 400 form.errors['__all__'] = form.error_class(["Error: %s" % exc.message]) # GET / POST with invalid input return render_to_response('user/create.html', context, context_instance=context_instance)