- Кастомные страницы для ошибок: Приложение включает кастомные страницы для ошибок 403 CSRF, 404 и 500, которые позволяют пользователю получить понятное и стилизованное сообщение об ошибке.
- Работа с пользователями: Проект подключает пользователей через модуль
django.contrib.auth
, позволяя пользователям создавать учетные записи, аутентифицироваться и авторизоваться на сайте. Имеется страница для регистрации новых пользователей и страница профиля, отображающая информацию о пользователе, его публикации, а также ссылки на редактирование профиля и изменение пароля. - Пагинация: Для удобства навигации по сайту, включена пагинация, которая выводит не более 10 публикаций на главной странице, странице пользователя и странице категории.
- Изображения к постам: Приложение позволяет пользователям прикреплять изображения к своим публикациям. Изображения отображаются на главной странице, странице пользователя, странице категории и отдельной странице публикации.
- Добавление и редактирование публикаций: Зарегистрированные пользователи могут самостоятельно публиковать посты. Создана страница для добавления новых публикаций, доступная только авторизованным пользователям. Администратор сайта может создавать новые категории и местоположения через панель администратора. Также пользователи могут редактировать свои публикации.
- Комментарии к публикациям: Реализована система комментирования записей. На странице поста выводится форма для отправки комментария, а также список комментариев, отсортированных по времени публикации. Только авторизованные пользователи могут комментировать публикации. Авторы комментариев имеют возможность редактировать свои комментарии.
- Удаление публикаций и комментариев: Авторизованные пользователи имеют возможность удалять собственные публикации и комментарии. Перед удалением материала открывается подтверждающая страница, где пользователь может подтвердить удаление.
- Новые статичные страницы: Обновлен механизм создания и изменения статичных страниц с использованием Class-Based Views (CBV). Адреса уже существующих статичных страниц не изменились.
- Отправка электронной почты: Для демонстрации функциональности отправки электронной почты, проект подключает файловый бэкенд. Все "отправленные" письма сохраняются в директории проекта
sent_emails/
.
Прежде чем начать, убедитесь, что ваше окружение поддерживает Python 3 и pip.
- Склонируйте репозиторий на свой локальный компьютер.
git clone <url-репозитория>
- Войдите в директорию проекта.
cd <папка-проекта>
- Установите зависимости.
pip install -r requirements.txt
- Проведите миграции базы данных.
python manage.py migrate
- Запустите сервер.
python manage.py runserver
Приложение будет доступно по адресу http://localhost:8000.
После установки и запуска сервера, вы сможете взаимодействовать с функциональностью веб-сайта для публикации.
- Зарегистрируйте новую учетную запись или войдите на сайт, используя существующие учетные данные.
- На главной странице вы увидите публикации всех пользователей, отсортированные по дате добавления.
- В профиле пользователя отображается информация о пользователе, его публикации и ссылки на редактирование профиля и изменение пароля. Эта страница доступна только залогиненному пользователю.
- Через страницу создания нового поста, вы можете добавить свою публикацию. Укажите заголовок, описание, категорию, местоположение и загрузите изображение.
- Вы можете редактировать и удалять свои публикации или комментарии на соответствующих страницах.
- Все "отправленные" письма будут сохраняться в директории
sent_emails/
.