Мои проекты

Commentail с нуля на учебном сайте

Запускаем отдельный Wagtail-сайт, добавляем первый комментарий и проходим подтверждение гостя без настоящей рассылки.

Урок 1 / 22 · Commentail 1.3.2

Если вы впервые подключаете комментарии к Wagtail, начните с учебного сайта на своём компьютере. Здесь можно ошибаться, не затрагивая посетителей и данные рабочего сайта. Дальше мы перенесём знакомые настройки в существующий проект.

Что понадобится

Терминал — программа, в которой команды вводятся текстом. На Windows откройте PowerShell, на macOS — Terminal. Команды выполняйте по одной; если команда завершилась ошибкой, сначала разберите её, а потом продолжайте. Не копируйте обозначения языка над блоком кода.

Курс привязан к Commentail 1.3.2. Поддерживаются Python 3.12–3.14, файловая SQLite и PostgreSQL 16. Совместимые пары: Wagtail 7.4.3+ в ветке 7.4 с Django 5.2 или 6.0; Wagtail 8.0 с Django 5.2, 6.0 или 6.1. Для уроков выберем Python 3.12 и SQLite. Установите Python с официального сайта; не заменяйте системный Python.

Подготовим папку и окружение

На странице релиза скачайте исходный архив .tar.gz, распакуйте и откройте терминал в папке, где находятся pyproject.toml и example. Именно исходный архив содержит учебный сайт; установленный wheel не заменяет эту папку. В macOS/Linux выполните:

sh
python3.12 -m venv .venv
source .venv/bin/activate
python --version
python -m pip install commentail==1.3.2

В Windows используйте:

powershell
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python --version
python -m pip install commentail==1.3.2

Виртуальное окружение — отдельная папка с библиотеками этого проекта. При новом запуске терминала активируйте его снова. Если PowerShell запрещает активацию, не меняйте общую политику безопасности: вместо python вызывайте полный путь .venv\Scripts\python.exe. После перехода в example этот путь будет ..\.venv\Scripts\python.exe.

Запустим пример

В корне распакованного архива выполните:

sh
python -m pip install -e .
cd example
python manage.py migrate
python manage.py bootstrap_demo
python manage.py createsuperuser
python manage.py runserver 127.0.0.1:8000

migrate создаёт таблицы; bootstrap_demo — учебную страницу и товар; createsuperuser — ваш локальный вход в админку. Пароль в терминале может не отображаться: это нормально. Последняя команда оставляет сервер работать. Откройте страницу и админку. Учётная запись существует только в этой учебной базе. bootstrap_demo никогда не запускайте на рабочем сайте.

Войдите в админку, отправьте комментарий на странице и одобрите его в разделе Comments. По умолчанию сообщения проходят модерацию; ожидание проверки — нормальный результат.

Попробуем гостя без почтового сервиса

Остановите сервер Ctrl+C. В example/demo/settings.py замените существующие EMAIL_BACKEND и DEFAULT_FROM_EMAIL:

python
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
DEFAULT_FROM_EMAIL = "comments@example.invalid"

Снова запустите сервер. Во втором терминале активируйте то же окружение, перейдите в example и выполните после гостевой отправки:

sh
python manage.py process_commentail

В приватном окне браузера отправьте комментарий с учебным адресом. Обработчик напечатает письмо во втором терминале. Скопируйте ссылку подтверждения в тот же приватный браузер, откройте и нажмите кнопку подтверждения. Затем одобрите сообщение в админке. Настоящее письмо никуда не уходит.

Проверьте результат: посетитель видит одобренный текст, а другой браузер не видит чужие ожидающие сообщения. Завершая работу, остановите сервер Ctrl+C. Разработка на runserver, локальные секреты и DEBUG из примера не подходят для публикации сайта.

Другие уроки по этой задаче

Документация по теме

Была ли статья полезна?

Комментарии 0

Имя: до 40 символов.

После отправки мы пришлём письмо со ссылкой для подтверждения email.

Не более 5000 символов.

Опубликованных комментариев пока нет.