Гид по технологиям

Переопределение шаблонов django-allauth

5 min read Django Обновлено 11 Apr 2026
Переопределение шаблонов django-allauth
Переопределение шаблонов django-allauth

Пример: стандартный шаблон, преобразованный в кастомный

django-allauth — это пакет для Django, который позволяет быстро реализовать систему аутентификации. Он поставляется с набором готовых шаблонов, что ускоряет разработку. Тем не менее, стандартные шаблоны часто требуют доработки интерфейса и стилизации под ваш проект.

Как установить и настроить django-allauth

Следуйте простым шагам, чтобы добавить django-allauth в проект.

  1. Установите пакет через pip:
pip install django-allauth  
  1. Добавьте приложения в INSTALLED_APPS в settings.py:
INSTALLED_APPS = [  
  
    """  
    Add your other apps here  
    """  
  
    # Djang-allauth configuration apps  
    'django.contrib.sites',  
    'allauth',  
    'allauth.account',  
    'allauth.socialaccount', # add this if you want to enable social authentication  
]  
  1. Укажите бэкенды аутентификации:
AUTHENTICATION_BACKENDS = [  
    'django.contrib.auth.backends.ModelBackend',  
    'allauth.account.auth_backends.AuthenticationBackend',  
]  
  1. Добавьте идентификатор сайта:
SITE_ID = 1  
  1. Подключите URL-паттерны allauth:
from django.urls import path, include  
  
urlpatterns = [  
    # Djang-allauth url pattern  
    path('accounts/', include('allauth.urls')),  
]  

Если всё настроено правильно, при переходе на http://127.0.0.1:8000/accounts/signup/ вы увидите страницу регистрации по умолчанию.

Форма регистрации django-allauth

При включённом DEBUG=True перечень доступных URL можно увидеть на http://127.0.0.1:8000/accounts/.

Страница 404 в режиме DEBUG Django с перечнем URL-шаблонов django-allauth

Как переопределить шаблон входа в django-allauth

Коротко: нужно убедиться, что Django смотрит в папку templates вашего проекта, затем создать структуру папок, повторяющую структуру шаблонов пакета, и поместить в неё свои файлы.

Важно: шаблоны ищутся по последовательности каталогов, указанной в настройке TEMPLATES. Поэтому ваша локальная версия должна иметь приоритет над шаблонами пакета.

Настройка папки templates

Откройте settings.py и проверьте раздел TEMPLATES. Убедитесь, что в DIRS подключена корневая папка templates:

'DIRS': [BASE_DIR/'templates'],  

Создайте в корне проекта папку templates, если её ещё нет.

Шаблонный путь и имена файлов

Создайте папку templates/account/ и положите туда файлы с именами, совпадающими с именами шаблонов allauth, например signup.html и login.html. Чтобы точно знать, какие шаблоны и блоки используются, просмотрите исходники пакета:

Lib > site-packages > allauth > templates > account

Это поможет понять, какие блоки и переменные доступны в шаблонах.

Фрагмент кода шаблона входа django-allauth по умолчанию

Пример: копируем блок с формой

Вместо полного перевода исходного шаблона часто достаточно скопировать нужный блок (например, {% else %}) и вставить его в свой login.html, сохранив переменные формы.

{% extends 'base.html' %}  
{% block content %}  

If you have not created an account yet, then please sign up first.

{% csrf_token %} {{ form.as_p }} {% if redirect_field_value %} {% endif %} Forgot password? SIgn in {% endblock content %}

Приведённый код использует наследование шаблонов Django. Удалите лишние теги (например, {% blocktrans %}), если они вам не нужны.

Кастомная страница входа с заголовком и футером

Как стилизовать форму

По умолчанию форма может рендериться через {{ form.as_p }}. Чтобы управлять разметкой и добавить классы CSS, нужно отрисовать поля вручную и знать name/id каждого поля.

Откройте инструменты разработчика браузера, чтобы увидеть атрибуты полей:

Инструменты разработчика браузера, показывающие поле email формы входа

Пример ручного вывода поля email:

{{ form.login }}  
Email  
{{ form.login.errors|safe }}  

Чтобы быстрее добавить приятный интерфейс, используйте Bootstrap или django-crispy-forms. Ниже пример формы с Bootstrap-классами (код оставлен как пример, его можно адаптировать под ваши CSS-классы):

  
      
          
            Sign in  
        
{{ form.non_field_errors | safe }} {% csrf_token %} {{ form.login }} Email {{ form.login.errors|safe }}
{{ form.password }} Password {{ form.password.errors|safe }}
Remember me {{ form.remember }} {% if redirect_field_value %} {% endif %} Sign in Forgot Password?

С целью доступности и локализации замените тексты кнопок и подсказок на нужный язык в шаблонах.

Форма входа с полями email, пароль и «Запомнить меня», жёлтая кнопка ВОЙТИ и ссылка «Забыли пароль?»

Переопределение любых шаблонов django-allauth

В пакете много шаблонов (email, подтверждение, смена пароля и т.д.). Принцип один: создаёте в проекте файлы с теми же путями и именами, что и в allauth, — и Django будет использовать ваши версии.

Важно: если используете кастомные настройки ACCOUNT_FORMS или ACCOUNT_ADAPTER, учитывайте, какие поля и контексты они снабжают шаблоны.

Когда переопределение не сработает или нежелательно

Альтернативы и когда их выбрать

Психологическая модель и эвристики

Чек-листы по ролям

Разработчик:

Дизайнер:

DevOps:

Быстрые сниппеты и чек-лист для шаблонов (cheat sheet)

pip install django-allauth
INSTALLED_APPS += ['django.contrib.sites','allauth','allauth.account','allauth.socialaccount']
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend','allauth.account.auth_backends.AuthenticationBackend']
SITE_ID = 1
'DIRS': [BASE_DIR/'templates']

Краткий словарь терминов

Примеры ошибок и как их диагностировать

Рекомендации по безопасности

Итоговое резюме

Переопределение шаблонов django-allauth — стандартная и поддерживаемая практика. Создайте папку templates/account, скопируйте и адаптируйте нужные файлы, стилизуйте форму через Bootstrap или другой CSS-фреймворк. Используйте чек-листы и ролевая ответственность, чтобы избежать регрессов при обновлениях пакета.

Важно: перед деплоем прогоняйте тесты и проверяйте рассылку подтверждений в staging-макете.

Ключевые ссылки: официальная документация django-allauth — лучший источник подробных настроек и примеров.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Показываем и управляем sideload приложениями на Android TV
Android TV

Показываем и управляем sideload приложениями на Android TV

Медленный мобильный интернет: 10 шагов для ускорения
Мобильная связь

Медленный мобильный интернет: 10 шагов для ускорения

Как выбрать тариф iCloud+ — 50GB–12TB
Облако

Как выбрать тариф iCloud+ — 50GB–12TB

Как заменить фон меню GRUB на своё изображение
Linux

Как заменить фон меню GRUB на своё изображение

Организация содержимого PS4 — полное руководство
Игры

Организация содержимого PS4 — полное руководство

Как смотреть живое ТВ в XBMC — плагины и советы
Медиа

Как смотреть живое ТВ в XBMC — плагины и советы