spacepaste

  1.  
  2. #django/urls.py
  3. urlpatterns = patterns('',
  4. url(r'myapp/', include('myapp.urls')),
  5. url(r'^admin/', include(admin.site.urls)),
  6. )
  7. #myapp/urls.py
  8. urlpatterns = patterns('myapp.views',
  9. url(r'^$', 'index', name='index'),
  10. url(r'register/$', 'register', name='register'),
  11. url(r'myaccount/$', 'myaccount', name='myaccount'),
  12. url(r'login/$', 'login_page', name='login'),
  13. url(r'logout/$', 'logout_user', name='logout')
  14. )
  15. #myapp/login.py
  16. def login_page(request):
  17. if request.user.is_authenticated():
  18. return HttpResponseRedirect(reverse('index'))
  19. form = LoginForm(request.POST or None)
  20. if form.is_valid():
  21. username = form.cleaned_data['username']
  22. username = username.capitalize()
  23. password = form.cleaned_data['password']
  24. try:
  25. User.objects.get(username=username)
  26. except:
  27. return render(request, 'myapp/login.html', {
  28. 'form': form,
  29. 'error': "Account doesn't exist"
  30. })
  31. user = authenticate(username=username, password=password)
  32. if user is not None:
  33. if user.is_active:
  34. login(request, user)
  35. return HttpResponseRedirect(reverse('index'))
  36. else:
  37. return render(request, 'myapp/login.html', {
  38. 'form': form,
  39. 'error': 'Account is disabled or banned',
  40. })
  41. else:
  42. return render(request, 'myapp/login.html', {
  43. 'form': form,
  44. 'form': 'Authentication Error!'
  45. })
  46. return render(request, 'myapp/login.html', {
  47. 'form': form,
  48. })
  49. {% if not user.is_authenticated %}
  50. #myapp/templates/myapp/login.html
  51. <strong>Login</strong>
  52. <form action='{% url 'login' %}' method="post">{% csrf_token %}
  53. {{ form.as_p }}
  54. <input type="submit" value="Login">
  55. </form>
  56. {{ error }}
  57. {% endif %}
  58.