Примеси для работы с одиночным объектом(Single object mixins)

SingleObjectMixin

class django.views.generic.detail.SingleObjectMixin

Предоставляет механизм для поиска объекта, связанного с текущим запросом HTTP.

Методы и Атрибуты

model

Модель с которой “работает” данное представление(представление будет отображать данные этой модели). Указать model = Foo эквивалентно инструкции queryset = Foo.objects.all().

queryset

Запрос QuerySet, представлющий объекты. Если указан, то значение queryset замещает значение в model.

slug_field

Имя поля модели, содержащего слаг(slug). По умолчаниюt, slug_field это 'slug'.

slug_url_kwarg

Имя переданного ключевого аргумента(именованной группы) в URLConf, содержащего значение слага(slug). По умолчанию, slug_url_kwarg это 'slug'.

pk_url_kwarg

Имя переданного ключевого аргумента(именованной группы) в URLConf, содержащего значение первичного ключа(primary key). По умолчанию, pk_url_kwarg равен 'pk'.

context_object_name

Задает имя переменной для использования в текущем контексте.

get_object(queryset=None)

Возвращает объект, который отображается данным представлением. Если предоставлено значение queryset, то этот queryset будет использован для получения объекта; в противном случае будет использован результат вызова метода get_queryset(). Метод get_object() проверяет значение аргумента pk_url_kwarg, из списка переданных представлению; если этот аргумент найден, то метод выполнит поиск по первичному ключу(по переданному значению). Если этот аргумент не найден, то будет проверено наличие аргумента slug_url_kwarg, и выполнен поиск по значению слага(используя slug_field).

get_queryset()

Возвращает объект queryset, который буден использован для получения объекта для данного представления. По умолчанию, метод get_queryset() возвращает значение атрибута queryset (если он установлен), - в противном случае будет создан экземпляр класса QuerySet вызовом метода all() у атрибута :attr:`model`( с помощью менеджера по умолчанию).

get_context_object_name(obj)

Возвращает имя переменной контекста(context variable), которая будет доступна в шаблоне и будет содержать данные, с которыми работает представление. Если атрибут context_object_name не установлен, то имя переменной контекста будет составлено из object_name модели, “породившей” текущий queryset. Н-р, модель Article будет иметь переменную контекста с именем 'article'.

get_context_data(**kwargs)

Возвращает данные контекста для отображения списка объектов.

get_slug_field()

Возвращает имя поля, хранящего слаг(slug), которое будет использоваться при выборке данных по слагу. По умолчанию просто возвращает значение атрибута slug_field.

Контекст

  • object: объект, отображаемый данным представлением. Если указан атрибут context_object_name, то эта переменная будет также добавлена в контекст, с тем же значением, что и у object.

SingleObjectTemplateResponseMixin

class django.views.generic.detail.SingleObjectTemplateResponseMixin

Класс-примесь, дающий возможность работы с шаблонами для представлений, отображающих одиночный объект. Требует, чтобы представление, в которое будет добавляться эта примесь, предоставляло значение self.object, - экземпляр объекта с которым “работает” представление. Обычно, хотя это и не требуется, self.object``это экземпляр модели Django.  Это значение может быть ``None, если представление “в середине” процесса по созданию нового экземпляра объекта.

Наследуется от

Методы и Атрибуты

template_name_field

Поле на текущий экземпляр объекта, который может быть использован для определения имени шаблона кандидата(шаблона, который будет использован для отображения данных). Если либо само значение template_name_field или значение template_name_field в текущем экземпляре объекта равно None, то объект не будет использоваться для определения имени шаблона кандидата.

template_name_suffix

Суффикс, который добавляется к автоматически сгенерированным именам шаблонов кандидатов. Значение суффикса по умолчанию: _detail.

get_template_names()

Возвращает список имен шаблонов кандидатов. Возвращает следующий список:

  • значение атрибута template_name в представлении(если указано)

  • содержимое поля template_name_field в экземпляре объекта, с которым работает представление(если доступно)

  • <app_label>/<object_name><template_name_suffix>.html