Содержание страницы
Продолжая тему создания доски объявлений, в этой статье мы рассмотрим, как добавить авторизацию и регистрацию пользователей Django 4. Если вы еще не знакомы с созданием доски объявлений на Django 4, советуем прочитать нашу прошлую статью, в которой мы подробно описали процесс создания доски объявлений с нуля.
Установка необходимых пакетов
Для начала установим пакет django-allauth для работы с авторизацией и регистрацией:
pip install django-allauth
Настройка django-allauth
Добавьте 'allauth'
и 'allauth.account'
в список INSTALLED_APPS
в файле settings.py
вашего проекта:
INSTALLED_APPS = [
# ...
'allauth',
'allauth.account',
# ...
]
Теперь добавьте следующие настройки в settings.py
:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)
SITE_ID = 1
Затем в urls.py
вашего проекта добавьте путь для allauth.urls
:
from django.urls import path, include
urlpatterns = [
# ...
path('accounts/', include('allauth.urls')),
# ...
]
Создание шаблонов авторизации и регистрации
Создайте папку templates
внутри вашего приложения, а затем создайте подпапку account
. Внутри подпапки account
создайте файлы login.html
и signup.html
.
В login.html
добавьте следующий код:
{% extends "base.html" %}
{% block content %}
<h2>Вход</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Войти</button>
</form>
{% endblock %}
В signup.html
добавьте следующий код:
{% extends "base.html" %}
{% block content %}
<h2>Регистрация</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Зарегистрироваться</button>
</form>
{% endblock %}
Добавление ссылок на авторизацию и регистрацию в навигацию
Откройте ваш главный шаблон (например, base.html
) и добавьте ссылки на страницы авторизации и регистрации в навигационное меню:
{% if user.is_authenticated %}
<a href="{% url 'account_logout' %}">Выйти ({{ user.username }})</a>
{% else %}
<a href="{% url 'account_login' %}">Вход</a>
<a href="{% url 'account_signup' %}">Регистрация</a>
{% endif %}
Теперь у вас есть полностью функциональная система авторизации и регистрации для вашей доски объявлений на Django 4. Воспользуйтесь этим руководством, чтобы добавить возможность авторизации и регистрации.