mirror of
				https://github.com/django/django.git
				synced 2025-10-26 07:06:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			139 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ====================
 | ||
| Single object mixins
 | ||
| ====================
 | ||
| 
 | ||
| SingleObjectMixin
 | ||
| -----------------
 | ||
| 
 | ||
| .. class:: django.views.generic.detail.SingleObjectMixin
 | ||
| 
 | ||
|     Provides a mechanism for looking up an object associated with the
 | ||
|     current HTTP request.
 | ||
| 
 | ||
|     **Methods and Attributes**
 | ||
| 
 | ||
|     .. attribute:: model
 | ||
| 
 | ||
|         The model that this view will display data for. Specifying ``model
 | ||
|         = Foo`` is effectively the same as specifying ``queryset =
 | ||
|         Foo.objects.all()``, where ``objects`` stands for ``Foo``’s
 | ||
|         :ref:`default manager <default-managers>`.
 | ||
| 
 | ||
|     .. attribute:: queryset
 | ||
| 
 | ||
|         A ``QuerySet`` that represents the objects. If provided, the value of
 | ||
|         ``queryset`` supersedes the value provided for :attr:`model`.
 | ||
| 
 | ||
|         .. warning::
 | ||
| 
 | ||
|             ``queryset`` is a class attribute with a *mutable* value so care
 | ||
|             must be taken when using it directly. Before using it, either call
 | ||
|             its :meth:`~django.db.models.query.QuerySet.all` method or
 | ||
|             retrieve it with :meth:`get_queryset` which takes care of the
 | ||
|             cloning behind the scenes.
 | ||
| 
 | ||
|     .. attribute:: slug_field
 | ||
| 
 | ||
|         The name of the field on the model that contains the slug. By default,
 | ||
|         ``slug_field`` is ``'slug'``.
 | ||
| 
 | ||
|     .. attribute:: slug_url_kwarg
 | ||
| 
 | ||
|         The name of the URLConf keyword argument that contains the slug. By
 | ||
|         default, ``slug_url_kwarg`` is ``'slug'``.
 | ||
| 
 | ||
|     .. attribute:: pk_url_kwarg
 | ||
| 
 | ||
|         The name of the URLConf keyword argument that contains the primary key.
 | ||
|         By default, ``pk_url_kwarg`` is ``'pk'``.
 | ||
| 
 | ||
|     .. attribute:: context_object_name
 | ||
| 
 | ||
|         Designates the name of the variable to use in the context.
 | ||
| 
 | ||
|     .. method:: get_object(queryset=None)
 | ||
| 
 | ||
|         Returns the single object that this view will display. If
 | ||
|         ``queryset`` is provided, that queryset will be used as the
 | ||
|         source of objects; otherwise, :meth:`get_queryset` will be used.
 | ||
|         ``get_object()`` looks for a :attr:`pk_url_kwarg` argument 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 a :attr:`slug_url_kwarg` argument, and performs a
 | ||
|         slug lookup using the :attr:`slug_field`.
 | ||
| 
 | ||
|     .. method:: get_queryset()
 | ||
| 
 | ||
|         Returns the queryset that will be used to retrieve the object that
 | ||
|         this view will display. By default, :meth:`get_queryset` returns the
 | ||
|         value of the :attr:`queryset` attribute if it is set, otherwise
 | ||
|         it constructs a :class:`~django.db.models.query.QuerySet` by calling
 | ||
|         the ``all()`` method on the :attr:`model` attribute's default manager.
 | ||
| 
 | ||
|     .. method:: get_context_object_name(obj)
 | ||
| 
 | ||
|         Return the context variable name that will be used to contain the
 | ||
|         data that this view is manipulating. If :attr:`context_object_name` is
 | ||
|         not set, the context name will be constructed from the ``model_name``
 | ||
|         of the model that the queryset is composed from. For example, the model
 | ||
|         ``Article`` would have context object named ``'article'``.
 | ||
| 
 | ||
|     .. method:: get_context_data(**kwargs)
 | ||
| 
 | ||
|         Returns context data for displaying the list of objects.
 | ||
| 
 | ||
|         The base implementation of this method requires that the ``object``
 | ||
|         attribute be set by the view (even if ``None``). Be sure to do this if
 | ||
|         you are using this mixin without one of the built-in views that does so.
 | ||
| 
 | ||
|     .. method:: get_slug_field()
 | ||
| 
 | ||
|         Returns the name of a slug field to be used to look up by slug. By
 | ||
|         default this simply returns the value of :attr:`slug_field`.
 | ||
| 
 | ||
|     **Context**
 | ||
| 
 | ||
|     * ``object``: The object that this view is displaying. If
 | ||
|       ``context_object_name`` is specified, that variable will also be
 | ||
|       set in the context, with the same value as ``object``.
 | ||
| 
 | ||
| SingleObjectTemplateResponseMixin
 | ||
| ---------------------------------
 | ||
| 
 | ||
| .. class:: django.views.generic.detail.SingleObjectTemplateResponseMixin
 | ||
| 
 | ||
|     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.object`` will usually be, but is not required to be,
 | ||
|     an instance of a Django model. It may be ``None`` if the view is in the
 | ||
|     process of constructing a new instance.
 | ||
| 
 | ||
|     **Extends**
 | ||
| 
 | ||
|     * :class:`~django.views.generic.base.TemplateResponseMixin`
 | ||
| 
 | ||
|     **Methods and Attributes**
 | ||
| 
 | ||
|     .. attribute:: template_name_field
 | ||
| 
 | ||
|         The field on the current object instance that can be used to determine
 | ||
|         the name of a candidate template. If either ``template_name_field``
 | ||
|         itself or the value of the ``template_name_field`` on the current
 | ||
|         object instance is ``None``, the object will not be used for a
 | ||
|         candidate template name.
 | ||
| 
 | ||
|     .. attribute:: template_name_suffix
 | ||
| 
 | ||
|         The suffix to append to the auto-generated candidate template name.
 | ||
|         Default suffix is ``_detail``.
 | ||
| 
 | ||
|     .. method:: get_template_names()
 | ||
| 
 | ||
|         Returns a list of candidate template names. Returns the following list:
 | ||
| 
 | ||
|         * the value of ``template_name`` on the view (if provided)
 | ||
|         * the contents of the ``template_name_field`` field on the
 | ||
|           object instance that the view is operating upon (if available)
 | ||
|         * ``<app_label>/<model_name><template_name_suffix>.html``
 |