Подготовка к выполнению задания:
- Клонируйте репозиторий django_sprint4 на свой компьютер, в рабочую папку Dev/.
- Скопируйте выполненное домашнее задание прошлого спринта из директории django_sprint3/blogicum/ в папку django_sprint4/blogicum/.
- Разверните и активируйте виртуальное окружение в папке Dev/django_sprint4/, установите в него зависимости из requirements.txt.
- После установки проекта должна получиться такая структура файлов:
Скопировать код
Dev/
└── django_sprint4/
├── .vscode/ Служебная папка редактора кода (опционально, скрытая)
├── .git/ Служебная информация Git (скрытая)
├── tests/ Тесты Практикума, проверяющие проект
├── venv/ Директория виртуального окружения
├── blogicum/ <-- Директория проекта
| ├── blog/
| ├── pages/
| ├── static/
| ├── templates/ <-- Перенесите новые шаблоны сюда
| ├── blogicum/
| ├── db.sqlite3 Файл базы данных (может и не быть)
| └── manage.py
├── .gitignore Список файлов и папок, скрытых от отслеживания Git (скрытый)
├── db.json <-- Фикстуры для базы данных
├── LICENSE Лицензия
├── pytest.ini Конфигурация тестов Практикума
├── README.md Описание проекта
├── requirements.txt Список зависимостей проекта
└── setup.cfg Настройки тестов Практикума
Дополнительные материалы
Шаблоны страниц
Для финальной версии проекта мы подготовили новую версию шаблонов всех страниц. Они уже свёрстаны и разложены по директориям приложений. В нужных местах шаблонов указаны соответствующие переменные контекста — они помогут вам выполнить задание.
Папка с шаблонами находится в репозитории, перенесите её в нужное место проекта.
Не вносите изменения в шаблоны: они полностью готовы к работе.
Фикстуры
В репозитории проекта есть файл с дампом базы данных: db.json. Дамп содержит несколько постов; вы можете загрузить его в базу и посмотреть, как выглядит и работает наполненный сайт.
Для выполнения задания его загружать не обязательно, это остаётся на ваше усмотрение.
Задание
Вот перечень задач, которые вам нужно выполнить:
- Кастомные страницы для ошибок.
- Подключите к проекту и настройте кастомные страницы для ошибок 403 CSRF, 404 и 500. Шаблоны для этих страниц находятся в директории templates/pages/.
- Работа с пользователями.
- Подключите к проекту пользователей:
- Подключите к проекту пути для работы с пользователями из django.contrib.auth.urls.
- Переопределите шаблоны для каждой подключённой страницы.
- Создайте страницу auth/registration/ с формой для регистрации пользователей.
- Создайте страницу пользователя profile//. На ней должны отображаться:
- a. информация о пользователе (доступна всем посетителям),
- b. публикации пользователя (доступны всем посетителям),
- c. ссылка на страницу редактирования профиля для изменения имени, фамилии, логина и адреса электронной почты (доступна только залогиненному пользователю — хозяину аккаунта),
- d. ссылка на страницу изменения пароля (доступна только залогиненному пользователю — хозяину аккаунта).
- Переопределять встроенную модель пользователя не требуется.
- Пагинация.
- Подключите к проекту пагинацию и настройте вывод не более 10 публикаций
- на главную страницу,
- на страницу пользователя,
- на страницу категории.
- Изображения к постам.
- Добавьте возможность прикреплять изображение к публикациям проекта. Если изображение добавлено, то оно должно отображаться в публикациях на
- главной странице,
- странице пользователя,
- странице категории,
- отдельной странице публикации.
- Добавление новых публикаций.