Маршрутизация и создание постов с подкатегориями
Маршрутизация и создание постов с подкатегориями
В этой статье мы продолжим реализовывать блог, а конкретнее записи в блоге. Обычно в статьях реализуют блог просто с постами, адреса которых начинаются с:
Но вы с трудом найдете пример, где будут такие адреса:
И еще при этом надо как-то реализовать абсолютные адреса записей с помощью get_absolute_url.
Создадим модель постов (записей в блоге)
В прошлой статье мы создали модели для страницы блога и модель категорий (одна модель для родительских и дочерних категорий). Сейчас импортируем дополнительные пакеты для реализации записей.
Чуть крупнее некоторые моменты в модели Post.
Эту часть пока лучше закомментировать, так как мы еще не написали маршруты для записей.
Теперь не забываем произвести миграцию, чтобы модель создалась в базе данных.
Далее идем в файл admin.py в нашем приложении blog. Импортируем модель Post.
Добавляем следующее:
Такие параметры позволят сделать админку для добавления записей в таком виде:
Добавьте свои записи и перейдем в файл views.py в приложении blog. Тут я приведу пример использования класса-контроллера, так как функцию котроллер мы использовали для категорий. Из-за того что любая запись может быть в категории или подкатегории, то я напишу 2 класса контроллера, а функцию котроллер для постов изменю.
Класс контроллер для записей в подкатегории:
Класс контроллер для записей в категории или для самой подкатегории:
Переходим в файл urls.py, в нем я привожу пример вложенных маршрутов, иногда это полезно.
Теперь в файле модели раскомментируем этот код, если вдруг закомментировали:
Теперь добавим в шаблон blog.html ссылки на посты:
Теперь можете проверять работу.
- 687