DjangoPython

Добавляем авторизацию и регистрацию к доске объявлений на Django 4. Часть 2

Продолжая тему создания доски объявлений, в этой статье мы рассмотрим, как добавить авторизацию и регистрацию пользователей 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. Воспользуйтесь этим руководством, чтобы добавить возможность авторизации и регистрации.

2.5/5 - (2 голоса)

Добавить комментарий

Back to top button