Класс DetailView
Данный класс используется для получения страницы конкретного объекта (нампример одной новости).
Для его использования импортируем библиотеку в файле views.py:
from django.views.generic import DetailView
Способ создания 1
- Объявим класс:
class ViewNews(DetailView): model = News pk_url_kwarg = 'news_id' # Параметр необходим для передачи через адрес ID конкретной страницы для её отображения - В файле
urls.pyдобавим соответсвующее условие вызова:path('news/<int:news_id>/', ViewNews.as_view(), name='view_news') - Создадим шаблон отображения страницы
view_news.html
Способ создания 2
- Объявим класс:
class ViewNews(DetailView): model = News context_object_name = 'news_item' # Указываем имя объекта для шабона вывода - В файле
urls.pyдобавим соответсвующее условие вызова:path('news/<int:pk>/', ViewNews.as_view(), name='view_news') Поменяем в файле
models.pyв функцииget_absolute_urlклассаNewsпередаваемое kwarg сnews_idнаpk- Cоздадим шаблон отображения страницы
view_news.html