Commit 6c34e18b authored by Baptiste Mispelon's avatar Baptiste Mispelon
Browse files

[1.6.x] Fixed #21396: Document backwards-incompatible change in RedirectView.get_redirect_url.

Thanks to Tim for the review.

Backport of f2e0266b from master.
parent 6026a509
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -239,12 +239,23 @@ RedirectView

    **Methods**

    .. method:: get_redirect_url(**kwargs)
    .. method:: get_redirect_url(*args, **kwargs)

        Constructs the target URL for redirection.

        .. versionchanged:: 1.6

            The signature of this method was changed to include ``*args``.

        The default implementation uses :attr:`url` as a starting
        string, performs expansion of ``%`` parameters in that string, as well
        as the appending of query string if requested by :attr:`query_string`.
        string and performs expansion of ``%`` named parameters in that string
        using the named groups captured in the URL.

        If :attr:`url` is not set, ``get_redirect_url()`` tries to reverse the
        :attr:`pattern_name` using what was captured in the URL (both named and
        unnamed groups are used).

        If requested by :attr:`query_string`, it will also append the query
        string to the generated URL.
        Subclasses may implement any behavior they wish, as long as the method
        returns a redirect-ready URL string.
+6 −0
Original line number Diff line number Diff line
@@ -913,6 +913,12 @@ Miscellaneous
  been removed. Use ``socket.error`` provided by the standard library instead.
  This change was also released in Django 1.5.5.

* The signature of :meth:`django.views.generic.base.RedirectView.get_redirect_url`
  has changed and now accepts positional arguments as well (``*args, **kwargs``).
  Any unnamed captured group will now be passed to ``get_redirect_url()``
  which may result in a ``TypeError`` if you don't update the signature of your
  custom method.

Features deprecated in 1.6
==========================