Link Search Menu Expand Document

Класс DetailView

Данный класс используется для получения страницы конкретного объекта (нампример одной новости).

Для его использования импортируем библиотеку в файле views.py:

from django.views.generic import DetailView

Способ создания 1

  1. Объявим класс:
    class ViewNews(DetailView):
     model = News
     pk_url_kwarg = 'news_id'  # Параметр необходим для передачи через адрес ID конкретной страницы для её отображения
    
  2. В файле urls.py добавим соответсвующее условие вызова:
    path('news/<int:news_id>/', ViewNews.as_view(), name='view_news')
    
  3. Создадим шаблон отображения страницы view_news.html

Способ создания 2

  1. Объявим класс:
    class ViewNews(DetailView):
     model = News
     context_object_name = 'news_item'  # Указываем имя объекта для шабона вывода
    
  2. В файле urls.py добавим соответсвующее условие вызова:
    path('news/<int:pk>/', ViewNews.as_view(), name='view_news')
    
  3. Поменяем в файле models.py в функции get_absolute_url класса News передаваемое kwarg с news_id на pk

  4. Cоздадим шаблон отображения страницы view_news.html