mirror of
https://github.com/django/django.git
synced 2025-08-04 02:48:35 +00:00
Fixed #29750 -- Added View.setup() hook for class-based views.
This commit is contained in:
parent
19e863a844
commit
e671337e8b
7 changed files with 85 additions and 14 deletions
|
@ -24,6 +24,7 @@ MRO is an acronym for Method Resolution Order.
|
|||
|
||||
**Method Flowchart**
|
||||
|
||||
#. :meth:`setup()`
|
||||
#. :meth:`dispatch()`
|
||||
#. :meth:`http_method_not_allowed()`
|
||||
#. :meth:`options()`
|
||||
|
@ -70,11 +71,22 @@ MRO is an acronym for Method Resolution Order.
|
|||
attributes.
|
||||
|
||||
When the view is called during the request/response cycle, the
|
||||
:class:`~django.http.HttpRequest` is assigned to the view's ``request``
|
||||
attribute. Any positional and/or keyword arguments :ref:`captured from
|
||||
the URL pattern <how-django-processes-a-request>` are assigned to the
|
||||
``args`` and ``kwargs`` attributes, respectively. Then :meth:`dispatch`
|
||||
is called.
|
||||
:meth:`setup` method assigns the :class:`~django.http.HttpRequest` to
|
||||
the view's ``request`` attribute, and any positional and/or keyword
|
||||
arguments :ref:`captured from the URL pattern
|
||||
<how-django-processes-a-request>` to the ``args`` and ``kwargs``
|
||||
attributes, respectively. Then :meth:`dispatch` is called.
|
||||
|
||||
.. method:: setup(request, *args, **kwargs)
|
||||
|
||||
.. versionadded:: 2.2
|
||||
|
||||
Initializes view instance attributes: ``self.request``, ``self.args``,
|
||||
and ``self.kwargs`` prior to :meth:`dispatch`.
|
||||
|
||||
Overriding this method allows mixins to setup instance attributes for
|
||||
reuse in child classes. When overriding this method, you must call
|
||||
``super()``.
|
||||
|
||||
.. method:: dispatch(request, *args, **kwargs)
|
||||
|
||||
|
@ -123,6 +135,7 @@ MRO is an acronym for Method Resolution Order.
|
|||
|
||||
**Method Flowchart**
|
||||
|
||||
#. :meth:`~django.views.generic.base.View.setup()`
|
||||
#. :meth:`~django.views.generic.base.View.dispatch()`
|
||||
#. :meth:`~django.views.generic.base.View.http_method_not_allowed()`
|
||||
#. :meth:`~django.views.generic.base.ContextMixin.get_context_data()`
|
||||
|
@ -184,6 +197,7 @@ MRO is an acronym for Method Resolution Order.
|
|||
|
||||
**Method Flowchart**
|
||||
|
||||
#. :meth:`~django.views.generic.base.View.setup()`
|
||||
#. :meth:`~django.views.generic.base.View.dispatch()`
|
||||
#. :meth:`~django.views.generic.base.View.http_method_not_allowed()`
|
||||
#. :meth:`get_redirect_url()`
|
||||
|
|
|
@ -31,6 +31,7 @@ Simple generic views
|
|||
* :meth:`~django.views.generic.base.View.dispatch`
|
||||
* ``head()``
|
||||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``TemplateView``
|
||||
----------------
|
||||
|
@ -55,6 +56,7 @@ Simple generic views
|
|||
* ``head()``
|
||||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``RedirectView``
|
||||
----------------
|
||||
|
@ -80,6 +82,7 @@ Simple generic views
|
|||
* ``options()``
|
||||
* ``post()``
|
||||
* ``put()``
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
Detail Views
|
||||
============
|
||||
|
@ -116,6 +119,7 @@ Detail Views
|
|||
* ``head()``
|
||||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
List Views
|
||||
==========
|
||||
|
@ -154,6 +158,7 @@ List Views
|
|||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
Editing views
|
||||
=============
|
||||
|
@ -189,6 +194,7 @@ Editing views
|
|||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.edit.ProcessFormView.post`
|
||||
* :meth:`~django.views.generic.edit.ProcessFormView.put`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``CreateView``
|
||||
--------------
|
||||
|
@ -233,6 +239,7 @@ Editing views
|
|||
* :meth:`~django.views.generic.edit.ProcessFormView.post`
|
||||
* ``put()``
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``UpdateView``
|
||||
--------------
|
||||
|
@ -277,6 +284,7 @@ Editing views
|
|||
* :meth:`~django.views.generic.edit.ProcessFormView.post`
|
||||
* ``put()``
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``DeleteView``
|
||||
--------------
|
||||
|
@ -313,6 +321,7 @@ Editing views
|
|||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* ``post()``
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
Date-based views
|
||||
================
|
||||
|
@ -356,6 +365,7 @@ Date-based views
|
|||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``YearArchiveView``
|
||||
-------------------
|
||||
|
@ -399,6 +409,7 @@ Date-based views
|
|||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``MonthArchiveView``
|
||||
--------------------
|
||||
|
@ -445,6 +456,7 @@ Date-based views
|
|||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``WeekArchiveView``
|
||||
-------------------
|
||||
|
@ -489,6 +501,7 @@ Date-based views
|
|||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``DayArchiveView``
|
||||
------------------
|
||||
|
@ -539,6 +552,7 @@ Date-based views
|
|||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``TodayArchiveView``
|
||||
--------------------
|
||||
|
@ -589,6 +603,7 @@ Date-based views
|
|||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.list.MultipleObjectMixin.paginate_queryset`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
||||
``DateDetailView``
|
||||
------------------
|
||||
|
@ -634,3 +649,4 @@ Date-based views
|
|||
* ``head()``
|
||||
* :meth:`~django.views.generic.base.View.http_method_not_allowed`
|
||||
* :meth:`~django.views.generic.base.TemplateResponseMixin.render_to_response`
|
||||
* :meth:`~django.views.generic.base.View.setup`
|
||||
|
|
|
@ -25,6 +25,7 @@ many projects they are typically the most commonly used views.
|
|||
|
||||
**Method Flowchart**
|
||||
|
||||
#. :meth:`~django.views.generic.base.View.setup()`
|
||||
#. :meth:`~django.views.generic.base.View.dispatch()`
|
||||
#. :meth:`~django.views.generic.base.View.http_method_not_allowed()`
|
||||
#. :meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names()`
|
||||
|
@ -95,6 +96,7 @@ many projects they are typically the most commonly used views.
|
|||
|
||||
**Method Flowchart**
|
||||
|
||||
#. :meth:`~django.views.generic.base.View.setup()`
|
||||
#. :meth:`~django.views.generic.base.View.dispatch()`
|
||||
#. :meth:`~django.views.generic.base.View.http_method_not_allowed()`
|
||||
#. :meth:`~django.views.generic.base.TemplateResponseMixin.get_template_names()`
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue