Первым делом удалите из файла blog/views.py словарь posts. Он больше не понадобится, дальше будем работать по-настоящему, с базой данных.
В приложении blog потребуются следующие модели:
Модель User встроена в Django и готова к работе. Сослаться на неё из другой модели можно так:
Скопировать код
PYTHON
from django.contrib.auth import get_user_model
...
User = get_user_model()
...
class Post(models.Model):
author = models.ForeignKey(
User,
on_delete=models.CASCADE
)
...
Когда структура базы данных будет готова, загрузите фикстуры из файла db.json.
Настройте админ-зону проекта так, чтобы можно было управлять созданием, изменением и удалением объектов моделей:
Новые HTML-шаблоны с вёрсткой лежат в папке templates. Перенесите их в соответствующую папку проекта (старые шаблоны удалите или сохраните где-нибудь вне проекта).
Скопировать код
Dev/
└── django_sprint3/
├── .vscode/
├── .git/
├── templates/ <-- Взять шаблоны тут.
├── tests/
├── venv/
├── blogicum/
| ├── blog/
| ├── pages/
| ├── static/
| ├── templates/ <-- Очистить эту папку и положить в неё новые шаблоны.
| ├── blogicum/
| ├── db.sqlite3
| └── manage.py
├── .flake8
├── .gitignore
├── LICENSE
├── pytest.ini
├── README.md
└── requirements.txt
В HTML-шаблонах, в тегах {{ }} указано, какая информация должна быть выведена в каждом конкретном месте шаблона.
View-функции и запросы к БДОбновите код view-функций: настройте ORM-запросы так, чтобы на страницы проекта выводилась требуемая информация.
Главная страница проекта
Выводятся пять последних публикаций.
На главной странице должны показываться только те публикации, у которых одновременно:
Страница категории
Выводятся только те публикации, которые
Если у запрошенной категории значение поля is_published равно False — должна возвращаться ошибка 404.
Страница отдельной публикации
Выводится отдельная публикация, полученная по первичному ключу.
Запрос к странице публикации должен вернуть ошибку 404, если:
После выполнения задания:
Скопировать код
django_sprint3/
├── tests/ Тесты Практикума, проверяющие проект
├── blogicum/ <-- Рабочая папка с вашим кодом
├── .flake8 Настройки тестов Практикума
├── .gitignore Список файлов и папок, скрытых от отслеживания Git
├── LICENSE Лицензия
├── pytest.ini Конфигурация тестов Практикума
├── README.md Описание проекта
└── requirements.txt Зависимости проекта
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |