Общие представления отображения
Два следующих общих представления на основе классов предназначены для отображения данных. Во многих проектах они обычно являются наиболее часто используемыми представлениями.
DetailView
-
class django.views.generic.detail.DetailView -
Во время выполнения этого представления,
self.objectбудет содержать объект, над которым работает представление.Предки (MRO)
Это представление наследует методы и атрибуты от следующих представлений:
django.views.generic.detail.SingleObjectTemplateResponseMixindjango.views.generic.base.TemplateResponseMixindjango.views.generic.detail.BaseDetailViewdjango.views.generic.detail.SingleObjectMixindjango.views.generic.base.View
Диаграмма потока методов
dispatch()http_method_not_allowed()get_template_names()get_slug_field()get_queryset()get_object()get_context_object_name()get_context_data()get()render_to_response()
Пример myapp/views.py:
%%%CODE_BLOCK_18%%>Пример myapp/urls.py:
%%%CODE_BLOCK_19%%>Пример myapp/article_detail.html:
%%%CODE_BLOCK_20%%>
ListView
-
class django.views.generic.list.ListView -
Страница, представляющая список объектов.
Во время выполнения этого представления,
self.object_listбудет содержать список объектов (обычно, но не обязательно, набор запросов), над которыми работает представление.Предки (MRO)
Это представление наследует методы и атрибуты от следующих представлений:
django.views.generic.list.MultipleObjectTemplateResponseMixindjango.views.generic.base.TemplateResponseMixindjango.views.generic.list.BaseListViewdjango.views.generic.list.MultipleObjectMixindjango.views.generic.base.View
Диаграмма потока методов
dispatch()http_method_not_allowed()get_template_names()get_queryset()get_context_object_name()get_context_data()get()render_to_response()
Пример views.py:
%%%CODE_BLOCK_37%%>Пример myapp/urls.py:
%%%CODE_BLOCK_38%%>Пример myapp/article_list.html:
%%%CODE_BLOCK_39%%>Если вы используете пагинацию, вы можете адаптировать пример шаблона из документации по пагинации. Измените экземпляры
contactsв этом примере шаблона на %%%CODE_BLOCK_41%%.
-
class django.views.generic.list.BaseListView -
Базовое представление для отображения списка объектов. Оно не предназначено для непосредственного использования, а скорее как родительский класс для
django.views.generic.list.ListViewили других представлений, представляющих списки объектов.Предки (MRO)
Это представление наследует методы и атрибуты от следующих представлений:
Методы
-
get(request, *args, **kwargs) -
Добавляет
object_listв контекст. Еслиallow_emptyравно True, то отображается пустой список. Еслиallow_emptyравно False, то поднимается ошибка 404.
-
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/2.0/ref/class-based-views/generic-display/