ZANIN блог
Контакты
Крути вниз
Фильтр по:
Категории
//Post title

Маршрутизация и создание постов с подкатегориями

16 Фев 2021Категория : Django

Маршрутизация и создание постов с подкатегориями

В этой статье мы продолжим реализовывать блог, а конкретнее записи в блоге. Обычно в статьях реализуют блог просто с постами, адреса которых начинаются с:

zanin.online/blog/name-post/

или

zanin.online/blog/category/name-post/

Но вы с трудом найдете пример, где будут такие адреса:

zanin.online/blog/

zanin.online/blog/category/

zanin.online/blog/category/name-post/

zanin.online/blog/category/sub-category/

zanin.online/blog/category/sub-category/name-post/

И еще при этом надо как-то реализовать абсолютные адреса записей с помощью get_absolute_url.

Создадим модель постов (записей в блоге)

В прошлой статье мы создали модели для страницы блога и модель категорий (одна модель для родительских и дочерних категорий). Сейчас импортируем дополнительные пакеты для реализации записей.

Django - записи в блоге с подкатегориями

Django - записи в блоге с подкатегориями

Чуть крупнее некоторые моменты в модели Post.

Django - записи в блоге с подкатегориями

Эту часть пока лучше закомментировать, так как мы еще не написали маршруты для записей.

Django - записи в блоге с подкатегориями

Теперь не забываем произвести миграцию, чтобы модель создалась в базе данных.

Далее идем в файл admin.py в нашем приложении blog. Импортируем модель Post.

Django - записи в блоге с подкатегориями

Добавляем следующее:

Django - записи в блоге с подкатегориями

Такие параметры позволят сделать админку для добавления записей в таком виде:

Django - записи в блоге с подкатегориями

Добавьте свои записи и перейдем в файл views.py в приложении blog. Тут я приведу пример использования класса-контроллера, так как функцию котроллер мы использовали для категорий. Из-за того что любая запись может быть в категории или подкатегории, то я напишу 2 класса контроллера, а функцию котроллер для постов изменю.

Django - записи в блоге с подкатегориями

Класс контроллер для записей в подкатегории:

Django - записи в блоге с подкатегориями

Класс контроллер для записей в категории или для самой подкатегории:

Django - записи в блоге с подкатегориями

Переходим в файл urls.py, в нем я привожу пример вложенных маршрутов, иногда это полезно.

Django - записи в блоге с подкатегориями

Теперь в файле модели раскомментируем этот код, если вдруг закомментировали:

Django - записи в блоге с подкатегориями

Теперь добавим в шаблон blog.html ссылки на посты:

Django - записи в блоге с подкатегориями

Теперь можете проверять работу.

  • 687

01. Об авторе

Александр Занин

Занимаюсь SEO и разработкой сайтов на Django.

Find on :

03. Категории

Готовы заказать проект?

© ZANIN 2019 / All rights reserved.
Контакты
Close