Так что я не совсем уверен, что именно вызывает ваши проблемы здесь.
Я знаю, что это, вероятно, не то, что они делают в учебнике, но я предлагаю вам использовать встроенный Djangoаутентификация просмотров.Таким образом, вам не нужно повторять код, который уже сделан для вас.
Представления очень просты в использовании.Все, что вам нужно сделать, это установить правильный маршрут в вашем URL, а затем создать шаблон в каталоге 'registration / login.html'.
Сначала установите правильные настройки в вашем файле settings.py (я включаюшаги входа в систему и выхода из системы, потому что они идут рука об руку):
LOGIN_REDIRECT_URL = '/page/you/redirect/to/'
LOGOUT_REDIRECT_URL = '/your/login/page/'
Затем установите URL:
urls.py
from django.conf.urls import url
from django.contrib.auth import views as auth_views
from django.conf import settings
urlpatterns = [
url(r'^login/$', auth_views.login, {'redirect_authenticated_user': True},name='login'),
url(r'^logout/$', auth_views.logout, {'next_page': settings.LOGOUT_REDIRECT_URL}, name='logout'),
]
Затем, наконец, в вашемПапка templates, которая находится в том же приложении, что и файл urls.py, куда вы помещаете маршруты входа и выхода, создайте папку с именем «registration» и создайте HTML-файл с именем «login.html».
Наконец,Ваш файл «login.html» может быть просто таким:
{% block title %}Login{% endblock %}
{% block content %}
<body>
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
</body>
{% endblock %}
Если вы хотите выйти из системы, просто поместите кнопку, где вы хотите, и свяжите ее с «/ logout».И после этого аутентификация завершена!