Guest User

Untitled

a guest
Aug 9th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. class LoginForm(forms.Form):
  2. username = forms.CharField(label='Введите Ваш логин')
  3. password = forms.CharField(label='Введите Ваш пароль', widget=forms.PasswordInput)
  4.  
  5. def clean(self):
  6. cleaned_data = super(LoginForm, self).clean()
  7. username = self.cleaned_data['username']
  8. password = self.cleaned_data['password']
  9. if not User.objects.filter(username=username).exists():
  10. raise forms.ValidationError('Пользователь с таким логином не зарегистрирован!')
  11.  
  12.  
  13. user = User.objects.get(username=username)
  14. if user and not user.check_password(password):
  15. raise forms.ValidationError('Неверный пароль!')
  16.  
  17. def login_view(request):
  18.  
  19. if request.method == 'POST':
  20. form = LoginForm(request.POST)
  21.  
  22. if form.is_valid():
  23. username = form.cleaned_data['username']
  24. password = form.cleaned_data['password']
  25. login_user = authenticate(username=username, password=password)
  26. if login_user:
  27. login(request, login_user)
  28. return redirect('/')
  29. else:
  30. form = LoginForm()
  31. return render(request, 'registration/login_view.html', {'form': form})
  32.  
  33. {% extends 'base.html' %}
  34. {% block content %}
  35. <div class="title">Вход</div>
  36. <section id="login" class="border">
  37. <form id="login-form" action="" method="POST">
  38. {% csrf_token %}
  39. {% for field in form %}
  40. {{ field.errors }}
  41.  
  42. <ul>
  43. <li>{{ field.label }} *</li>
  44. <li>
  45. <input class="input" name="{{ field.name }}" type="{{ field.name }}" /> </li>
  46. </ul>
  47. {% endfor %}
  48. <div>
  49. <span><input class="block" type="submit" value="Войти" /></span>
  50. </div>
  51. </form>
  52. </section>
  53. {% endblock content %}
  54.  
  55. {% extends 'base.html' %}
  56. {% block content %}
  57. <div class="title">Вход</div>
  58. <section id="login" class="border">
  59. <form id="login-form" action="" method="POST">
  60. {% csrf_token %}
  61. {{ form.non_field_errors }}
  62. {% for field in form %}
  63. <ul>
  64. <li>{{ field.label }} *</li>
  65. <li>
  66. <input class="input" name="{{ field.name }}" type="{{ field.name }}" /> </li>
  67. </ul>
  68. {% endfor %}
  69. <div>
  70. <span><input class="block" type="submit" value="Войти" /></span>
  71. </div>
  72. </form>
  73. </section>
  74. {% endblock content %}
Add Comment
Please, Sign In to add comment