#models.py:
from django import forms
class LoginForm(forms.Form):
username = forms.CharField(max_length=100)
password = forms.CharField(widget=forms.PasswordInput(render_value=False),max_length=100)
#views.py:
from project.courses.models import LoginForm
def check_login(request):
def errorHandle(error):
form = LoginForm()
return render_to_response('pathto/login.html', {
'error' : error,
'form' : form,
})
if request.user.is_authenticated():
username = request.user.username
return render_to_response('pathto/logged_in.html', {
'username': username,
})
else:
if request.method == 'POST': # If the form has been submitted...
form = LoginForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
# Redirect to a success page.
login(request, user)
return render_to_response('pathto/logged_in.html', {
'username': username,
})
else:
# Return a 'disabled account' error message
error = u'account disabled'
return errorHandle(error)
else:
# Return an 'invalid login' error message.
error = u'invalid login'
return errorHandle(error)
else:
error = u'form is invalid'
return errorHandle(error)
else:
form = LoginForm() # An unbound form
return render_to_response('pathto/login.html', {
'form': form,
})
def logout_view(request):
if request.user.is_authenticated():
logout(request)
form = LoginForm()
return check_login(request)
else:
check_login(request)
return HttpResponseRedirect('/')
#login.html:
{% if error %}
<p><i>{{ error }}</i></p>
{% endif %}
<form action="." method="POST">
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
#logged_in.html:
<h1>Welcome, {{ username }}</h1>
<p><a href='/scraper/logout/'>Logout</a></p>
Comments