def login(request): """ A view for logging in users """ # forward users who are already logged in to their homepage if request.user.is_authenticated(): msg = 'You are already logged in and are forwarded to your Inbox' messages.info(request, msg) return HttpResponseRedirect(reverse('url_index')) next = None invalid = False if request.method == 'POST': # propagate 'next' if 'next' in request.POST: next = request.POST['next'] form = LoginForm(request.POST) if form.is_valid(): # get the username # (if there is no username, the form is not valid) username = form.get_username() password = form.cleaned_data['password'] # authenticate user = auth.authenticate(username=username, password=password) # (if the User object is not active, the form is not valid) if user is not None: # login auth.login(request, user) # check redirect if 'next' in request.POST: next = request.POST['next'] return HttpResponseRedirect(next) # re-direct to home page return HttpResponseRedirect(reverse('url_index')) else: invalid = True else: # create an empty form form = LoginForm() # propagate 'next' if request.method == 'GET' and 'next' in request.GET: next = request.GET['next'] return render_to_response('registration/login.html', { 'form' : form, 'next' : next, 'invalid' : invalid }, context_instance=RequestContext(request))
def login(request): login_form = LoginForm() next = request.REQUEST.get('next') if request.method == 'POST': login_form = LoginForm(request.POST) if login_form.is_valid(): username = login_form.get_username() request.session['username'] = username if next: return HttpResponseRedirect(next) return HttpResponseRedirect('/') context = { 'login_form': login_form, 'next': next, } return render_to_response('login.html', context, context_instance=RequestContext(request))