[1.7.x] Fixed #22644 -- Clarified documentation for NamedUrlWizardView

Backport of 727d048f09 from master.
This commit is contained in:
Erik Romijn 2014-05-17 15:11:00 +02:00
parent 0594d2d714
commit bc2bfbadcc
1 changed files with 16 additions and 18 deletions

View File

@ -722,24 +722,22 @@ Usage of ``NamedUrlWizardView``
.. class:: NamedUrlSessionWizardView .. class:: NamedUrlSessionWizardView
.. class:: NamedUrlCookieWizardView .. class:: NamedUrlCookieWizardView
There is a :class:`WizardView` subclass which adds named-urls support to the ``NamedUrlWizardView`` is a :class:`WizardView` subclass which adds named-urls
wizard. By doing this, you can have single urls for every step. You can also support to the wizard. This allows you to have separate URLs for every step.
use the :class:`NamedUrlSessionWizardView` or :class:`NamedUrlCookieWizardView` You can also use the :class:`NamedUrlSessionWizardView` or :class:`NamedUrlCookieWizardView`
classes which preselect the backend used for storing information (server-side classes which preselect the backend used for storing information (Django sessions and
sessions and browser cookies respectively). browser cookies respectively).
To use the named urls, you have to change the ``urls.py``. To use the named URLs, you should not only use the :class:`NamedUrlWizardView` instead of
:class:`WizardView`, but you will also have to change your ``urls.py``.
Below you will see an example of a contact wizard with two steps, step 1 with The :meth:`~WizardView.as_view` method takes two additional arguments:
``"contactdata"`` as its name and step 2 with ``"leavemessage"`` as its name.
Additionally you have to pass two more arguments to the * a required ``url_name`` -- the name of the url (as provided in the ``urls.py``)
:meth:`~WizardView.as_view` method: * an optional ``done_step_name`` -- the name of the done step, to be used in the URL
* ``url_name`` -- the name of the url (as provided in the urls.py) This is an example of a ``urls.py`` for a contact wizard with two steps, step 1 named
* ``done_step_name`` -- the name in the url for the done step ``contactdata`` and step 2 named ``leavemessage``::
Example code for the changed ``urls.py`` file::
from django.conf.urls import url, patterns from django.conf.urls import url, patterns
@ -764,9 +762,9 @@ Advanced ``NamedUrlWizardView`` methods
.. method:: NamedUrlWizardView.get_step_url(step) .. method:: NamedUrlWizardView.get_step_url(step)
This method returns the URL for a specific step. This method returns the URL for a specific step.
Default implementation:: Default implementation::
def get_step_url(self, step): def get_step_url(self, step):
return reverse(self.url_name, kwargs={'step': step}) return reverse(self.url_name, kwargs={'step': step})