Single object mixinsLink to this heading
SingleObjectMixinLink to this heading
- class django.views.generic.detail.SingleObjectMixinLink to this definition
Provides a mechanism for looking up an object associated with the current HTTP request.
Methods and Attributes
- modelLink to this definition
The model that this view will display data for. Specifying
model = Foois effectively the same as specifyingqueryset = Foo.objects.all(), whereobjectsstands forFoo’s default manager.
- querysetLink to this definition
A
QuerySetthat represents the objects. If provided, the value ofquerysetsupersedes the value provided formodel.
- slug_fieldLink to this definition
The name of the field on the model that contains the slug. By default,
slug_fieldis'slug'.
- slug_url_kwargLink to this definition
The name of the URLConf keyword argument that contains the slug. By default,
slug_url_kwargis'slug'.
- pk_url_kwargLink to this definition
The name of the URLConf keyword argument that contains the primary key. By default,
pk_url_kwargis'pk'.
- context_object_nameLink to this definition
Designates the name of the variable to use in the context.
- query_pk_and_slugLink to this definition
If
True, causesget_object()to perform its lookup using both the primary key and the slug. Defaults toFalse.This attribute can help mitigate insecure direct object reference attacks. When applications allow access to individual objects by a sequential primary key, an attacker could brute-force guess all URLs; thereby obtaining a list of all objects in the application. If users with access to individual objects should be prevented from obtaining this list, setting
query_pk_and_slugtoTruewill help prevent the guessing of URLs as each URL will require two correct, non-sequential arguments. Simply using a unique slug may serve the same purpose, but this scheme allows you to have non-unique slugs.
- get_object(queryset=None)Link to this definition
Returns the single object that this view will display. If
querysetis provided, that queryset will be used as the source of objects; otherwise,get_queryset()will be used.get_object()looks for apk_url_kwargargument in the arguments to the view; if this argument is found, this method performs a primary-key based lookup using that value. If this argument is not found, it looks for aslug_url_kwargargument, and performs a slug lookup using theslug_field.When
query_pk_and_slugisTrue,get_object()will perform its lookup using both the primary key and the slug.
- get_queryset()Link to this definition
Returns the queryset that will be used to retrieve the object that this view will display. By default,
get_queryset()returns the value of thequerysetattribute if it is set, otherwise it constructs aQuerySetby calling theall()method on themodelattribute’s default manager.
- get_context_object_name(obj)Link to this definition
Return the context variable name that will be used to contain the data that this view is manipulating. If
context_object_nameis not set, the context name will be constructed from themodel_nameof the model that the queryset is composed from. For example, the modelArticlewould have context object named'article'.
- get_context_data(**kwargs)Link to this definition
Returns context data for displaying the object.
The base implementation of this method requires that the
self.objectattribute be set by the view (even ifNone). Be sure to do this if you are using this mixin without one of the built-in views that does so.It returns a dictionary with these contents:
object: The object that this view is displaying (self.object).context_object_name:self.objectwill also be stored under the name returned byget_context_object_name(), which defaults to the lowercased version of the model name.
- get_slug_field()Link to this definition
Returns the name of a slug field to be used to look up by slug. By default this simply returns the value of
slug_field.
SingleObjectTemplateResponseMixinLink to this heading
- class django.views.generic.detail.SingleObjectTemplateResponseMixinLink to this definition
A mixin class that performs template-based response rendering for views that operate upon a single object instance. Requires that the view it is mixed with provides
self.object, the object instance that the view is operating on.self.objectwill usually be, but is not required to be, an instance of a Django model. It may beNoneif the view is in the process of constructing a new instance.Extends
Methods and Attributes
- template_name_fieldLink to this definition
The field on the current object instance that can be used to determine the name of a candidate template. If either
template_name_fielditself or the value of thetemplate_name_fieldon the current object instance isNone, the object will not be used for a candidate template name.
- template_name_suffixLink to this definition
The suffix to append to the auto-generated candidate template name. Default suffix is
_detail.
- get_template_names()Link to this definition
Returns a list of candidate template names. Returns the following list:
the value of
template_nameon the view (if provided)the contents of the
template_name_fieldfield on the object instance that the view is operating upon (if available)<app_label>/<model_name><template_name_suffix>.html