Refs #24126 -- Removed auth views' current_app parameter per deprecation timeline.
This commit is contained in:
parent
8377abd59e
commit
9f9a3d643e
|
@ -1,4 +1,3 @@
|
||||||
import functools
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
@ -18,9 +17,7 @@ from django.shortcuts import resolve_url
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from django.urls import reverse, reverse_lazy
|
from django.urls import reverse, reverse_lazy
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
from django.utils.deprecation import (
|
from django.utils.deprecation import RemovedInDjango21Warning
|
||||||
RemovedInDjango20Warning, RemovedInDjango21Warning,
|
|
||||||
)
|
|
||||||
from django.utils.encoding import force_text
|
from django.utils.encoding import force_text
|
||||||
from django.utils.http import is_safe_url, urlsafe_base64_decode
|
from django.utils.http import is_safe_url, urlsafe_base64_decode
|
||||||
from django.utils.six.moves.urllib.parse import urlparse, urlunparse
|
from django.utils.six.moves.urllib.parse import urlparse, urlunparse
|
||||||
|
@ -34,27 +31,6 @@ from django.views.generic.edit import FormView
|
||||||
UserModel = get_user_model()
|
UserModel = get_user_model()
|
||||||
|
|
||||||
|
|
||||||
def deprecate_current_app(func):
|
|
||||||
"""
|
|
||||||
Handle deprecation of the current_app parameter of the views.
|
|
||||||
"""
|
|
||||||
@functools.wraps(func)
|
|
||||||
def inner(*args, **kwargs):
|
|
||||||
if 'current_app' in kwargs:
|
|
||||||
warnings.warn(
|
|
||||||
"Passing `current_app` as a keyword argument is deprecated. "
|
|
||||||
"Instead the caller of `{0}` should set "
|
|
||||||
"`request.current_app`.".format(func.__name__),
|
|
||||||
RemovedInDjango20Warning
|
|
||||||
)
|
|
||||||
current_app = kwargs.pop('current_app')
|
|
||||||
request = kwargs.get('request', None)
|
|
||||||
if request and current_app is not None:
|
|
||||||
request.current_app = current_app
|
|
||||||
return func(*args, **kwargs)
|
|
||||||
return inner
|
|
||||||
|
|
||||||
|
|
||||||
class SuccessURLAllowedHostsMixin(object):
|
class SuccessURLAllowedHostsMixin(object):
|
||||||
success_url_allowed_hosts = set()
|
success_url_allowed_hosts = set()
|
||||||
|
|
||||||
|
@ -125,7 +101,6 @@ class LoginView(SuccessURLAllowedHostsMixin, FormView):
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
@deprecate_current_app
|
|
||||||
def login(request, *args, **kwargs):
|
def login(request, *args, **kwargs):
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
'The login() view is superseded by the class-based LoginView().',
|
'The login() view is superseded by the class-based LoginView().',
|
||||||
|
@ -190,7 +165,6 @@ class LogoutView(SuccessURLAllowedHostsMixin, TemplateView):
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
@deprecate_current_app
|
|
||||||
def logout(request, *args, **kwargs):
|
def logout(request, *args, **kwargs):
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
'The logout() view is superseded by the class-based LogoutView().',
|
'The logout() view is superseded by the class-based LogoutView().',
|
||||||
|
@ -202,7 +176,6 @@ def logout(request, *args, **kwargs):
|
||||||
_sentinel = object()
|
_sentinel = object()
|
||||||
|
|
||||||
|
|
||||||
@deprecate_current_app
|
|
||||||
def logout_then_login(request, login_url=None, extra_context=_sentinel):
|
def logout_then_login(request, login_url=None, extra_context=_sentinel):
|
||||||
"""
|
"""
|
||||||
Logs out the user if they are logged in. Then redirects to the log-in page.
|
Logs out the user if they are logged in. Then redirects to the log-in page.
|
||||||
|
@ -242,7 +215,6 @@ def redirect_to_login(next, login_url=None,
|
||||||
# prompts for a new password
|
# prompts for a new password
|
||||||
# - password_reset_complete shows a success message for the above
|
# - password_reset_complete shows a success message for the above
|
||||||
|
|
||||||
@deprecate_current_app
|
|
||||||
@csrf_protect
|
@csrf_protect
|
||||||
def password_reset(request,
|
def password_reset(request,
|
||||||
template_name='registration/password_reset_form.html',
|
template_name='registration/password_reset_form.html',
|
||||||
|
@ -289,7 +261,6 @@ def password_reset(request,
|
||||||
return TemplateResponse(request, template_name, context)
|
return TemplateResponse(request, template_name, context)
|
||||||
|
|
||||||
|
|
||||||
@deprecate_current_app
|
|
||||||
def password_reset_done(request,
|
def password_reset_done(request,
|
||||||
template_name='registration/password_reset_done.html',
|
template_name='registration/password_reset_done.html',
|
||||||
extra_context=None):
|
extra_context=None):
|
||||||
|
@ -308,7 +279,6 @@ def password_reset_done(request,
|
||||||
# Doesn't need csrf_protect since no-one can guess the URL
|
# Doesn't need csrf_protect since no-one can guess the URL
|
||||||
@sensitive_post_parameters()
|
@sensitive_post_parameters()
|
||||||
@never_cache
|
@never_cache
|
||||||
@deprecate_current_app
|
|
||||||
def password_reset_confirm(request, uidb64=None, token=None,
|
def password_reset_confirm(request, uidb64=None, token=None,
|
||||||
template_name='registration/password_reset_confirm.html',
|
template_name='registration/password_reset_confirm.html',
|
||||||
token_generator=default_token_generator,
|
token_generator=default_token_generator,
|
||||||
|
@ -359,7 +329,6 @@ def password_reset_confirm(request, uidb64=None, token=None,
|
||||||
return TemplateResponse(request, template_name, context)
|
return TemplateResponse(request, template_name, context)
|
||||||
|
|
||||||
|
|
||||||
@deprecate_current_app
|
|
||||||
def password_reset_complete(request,
|
def password_reset_complete(request,
|
||||||
template_name='registration/password_reset_complete.html',
|
template_name='registration/password_reset_complete.html',
|
||||||
extra_context=None):
|
extra_context=None):
|
||||||
|
@ -518,7 +487,6 @@ class PasswordResetCompleteView(PasswordContextMixin, TemplateView):
|
||||||
@sensitive_post_parameters()
|
@sensitive_post_parameters()
|
||||||
@csrf_protect
|
@csrf_protect
|
||||||
@login_required
|
@login_required
|
||||||
@deprecate_current_app
|
|
||||||
def password_change(request,
|
def password_change(request,
|
||||||
template_name='registration/password_change_form.html',
|
template_name='registration/password_change_form.html',
|
||||||
post_change_redirect=None,
|
post_change_redirect=None,
|
||||||
|
@ -552,7 +520,6 @@ def password_change(request,
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@deprecate_current_app
|
|
||||||
def password_change_done(request,
|
def password_change_done(request,
|
||||||
template_name='registration/password_change_done.html',
|
template_name='registration/password_change_done.html',
|
||||||
extra_context=None):
|
extra_context=None):
|
||||||
|
|
|
@ -303,3 +303,6 @@ these features.
|
||||||
* ``Field._get_val_from_obj()`` is removed.
|
* ``Field._get_val_from_obj()`` is removed.
|
||||||
|
|
||||||
* ``django.template.loaders.eggs.Loader`` is removed.
|
* ``django.template.loaders.eggs.Loader`` is removed.
|
||||||
|
|
||||||
|
* The ``current_app`` parameter to the ``contrib.auth`` function-based views is
|
||||||
|
removed.
|
||||||
|
|
|
@ -955,7 +955,7 @@ All authentication views
|
||||||
This is a list with all the views ``django.contrib.auth`` provides. For
|
This is a list with all the views ``django.contrib.auth`` provides. For
|
||||||
implementation details see :ref:`using-the-views`.
|
implementation details see :ref:`using-the-views`.
|
||||||
|
|
||||||
.. function:: login(request, template_name=`registration/login.html`, redirect_field_name='next', authentication_form=AuthenticationForm, current_app=None, extra_context=None, redirect_authenticated_user=False)
|
.. function:: login(request, template_name=`registration/login.html`, redirect_field_name='next', authentication_form=AuthenticationForm, extra_context=None, redirect_authenticated_user=False)
|
||||||
|
|
||||||
.. deprecated:: 1.11
|
.. deprecated:: 1.11
|
||||||
|
|
||||||
|
@ -963,16 +963,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
:class:`LoginView`.
|
:class:`LoginView`.
|
||||||
|
|
||||||
The optional arguments of this view are similar to the class-based
|
The optional arguments of this view are similar to the class-based
|
||||||
``LoginView`` attributes. In addition, it has:
|
``LoginView`` attributes.
|
||||||
|
|
||||||
* ``current_app``: A hint indicating which application contains the
|
|
||||||
current view. See the :ref:`namespaced URL resolution strategy
|
|
||||||
<topics-http-reversing-url-namespaces>` for more information.
|
|
||||||
|
|
||||||
.. deprecated:: 1.9
|
|
||||||
|
|
||||||
The ``current_app`` attribute is deprecated and will be removed in
|
|
||||||
Django 2.0. Callers should set ``request.current_app`` instead.
|
|
||||||
|
|
||||||
.. versionadded:: 1.10
|
.. versionadded:: 1.10
|
||||||
|
|
||||||
|
@ -1116,7 +1107,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
``get_user()`` method which returns the authenticated user object (this
|
``get_user()`` method which returns the authenticated user object (this
|
||||||
method is only ever called after successful form validation).
|
method is only ever called after successful form validation).
|
||||||
|
|
||||||
.. function:: logout(request, next_page=None, template_name='registration/logged_out.html', redirect_field_name='next', current_app=None, extra_context=None)
|
.. function:: logout(request, next_page=None, template_name='registration/logged_out.html', redirect_field_name='next', extra_context=None)
|
||||||
|
|
||||||
.. deprecated:: 1.11
|
.. deprecated:: 1.11
|
||||||
|
|
||||||
|
@ -1124,16 +1115,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
class-based :class:`LogoutView`.
|
class-based :class:`LogoutView`.
|
||||||
|
|
||||||
The optional arguments of this view are similar to the class-based
|
The optional arguments of this view are similar to the class-based
|
||||||
``LogoutView`` attributes. In addition, it has:
|
``LogoutView`` attributes.
|
||||||
|
|
||||||
* ``current_app``: A hint indicating which application contains the
|
|
||||||
current view. See the :ref:`namespaced URL resolution strategy
|
|
||||||
<topics-http-reversing-url-namespaces>` for more information.
|
|
||||||
|
|
||||||
.. deprecated:: 1.9
|
|
||||||
|
|
||||||
The ``current_app`` attribute is deprecated and will be removed in
|
|
||||||
Django 2.0. Callers should set ``request.current_app`` instead.
|
|
||||||
|
|
||||||
.. class:: LogoutView
|
.. class:: LogoutView
|
||||||
|
|
||||||
|
@ -1178,7 +1160,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
:attr:`request.META['SERVER_NAME'] <django.http.HttpRequest.META>`.
|
:attr:`request.META['SERVER_NAME'] <django.http.HttpRequest.META>`.
|
||||||
For more on sites, see :doc:`/ref/contrib/sites`.
|
For more on sites, see :doc:`/ref/contrib/sites`.
|
||||||
|
|
||||||
.. function:: logout_then_login(request, login_url=None, current_app=None, extra_context=None)
|
.. function:: logout_then_login(request, login_url=None, extra_context=None)
|
||||||
|
|
||||||
Logs a user out, then redirects to the login page.
|
Logs a user out, then redirects to the login page.
|
||||||
|
|
||||||
|
@ -1189,24 +1171,15 @@ implementation details see :ref:`using-the-views`.
|
||||||
* ``login_url``: The URL of the login page to redirect to.
|
* ``login_url``: The URL of the login page to redirect to.
|
||||||
Defaults to :setting:`settings.LOGIN_URL <LOGIN_URL>` if not supplied.
|
Defaults to :setting:`settings.LOGIN_URL <LOGIN_URL>` if not supplied.
|
||||||
|
|
||||||
* ``current_app``: A hint indicating which application contains the current
|
|
||||||
view. See the :ref:`namespaced URL resolution strategy
|
|
||||||
<topics-http-reversing-url-namespaces>` for more information.
|
|
||||||
|
|
||||||
* ``extra_context``: A dictionary of context data that will be added to the
|
* ``extra_context``: A dictionary of context data that will be added to the
|
||||||
default context data passed to the template.
|
default context data passed to the template.
|
||||||
|
|
||||||
.. deprecated:: 1.9
|
|
||||||
|
|
||||||
The ``current_app`` parameter is deprecated and will be removed in
|
|
||||||
Django 2.0. Callers should set ``request.current_app`` instead.
|
|
||||||
|
|
||||||
.. deprecated:: 1.11
|
.. deprecated:: 1.11
|
||||||
|
|
||||||
The unused ``extra_context`` parameter is deprecated and will be
|
The unused ``extra_context`` parameter is deprecated and will be
|
||||||
removed in Django 2.1.
|
removed in Django 2.1.
|
||||||
|
|
||||||
.. function:: password_change(request, template_name='registration/password_change_form.html', post_change_redirect=None, password_change_form=PasswordChangeForm, current_app=None, extra_context=None)
|
.. function:: password_change(request, template_name='registration/password_change_form.html', post_change_redirect=None, password_change_form=PasswordChangeForm, extra_context=None)
|
||||||
|
|
||||||
.. deprecated:: 1.11
|
.. deprecated:: 1.11
|
||||||
|
|
||||||
|
@ -1216,16 +1189,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
The optional arguments of this view are similar to the class-based
|
The optional arguments of this view are similar to the class-based
|
||||||
``PasswordChangeView`` attributes, except the ``post_change_redirect`` and
|
``PasswordChangeView`` attributes, except the ``post_change_redirect`` and
|
||||||
``password_change_form`` arguments which map to the ``success_url`` and
|
``password_change_form`` arguments which map to the ``success_url`` and
|
||||||
``form_class`` attributes of the class-based view. In addition, it has:
|
``form_class`` attributes of the class-based view.
|
||||||
|
|
||||||
* ``current_app``: A hint indicating which application contains the current
|
|
||||||
view. See the :ref:`namespaced URL resolution strategy
|
|
||||||
<topics-http-reversing-url-namespaces>` for more information.
|
|
||||||
|
|
||||||
.. deprecated:: 1.9
|
|
||||||
|
|
||||||
The ``current_app`` parameter is deprecated and will be removed in
|
|
||||||
Django 2.0. Callers should set ``request.current_app`` instead.
|
|
||||||
|
|
||||||
.. class:: PasswordChangeView
|
.. class:: PasswordChangeView
|
||||||
|
|
||||||
|
@ -1256,7 +1220,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
|
|
||||||
* ``form``: The password change form (see ``form_class`` above).
|
* ``form``: The password change form (see ``form_class`` above).
|
||||||
|
|
||||||
.. function:: password_change_done(request, template_name='registration/password_change_done.html', current_app=None, extra_context=None)
|
.. function:: password_change_done(request, template_name='registration/password_change_done.html', extra_context=None)
|
||||||
|
|
||||||
.. deprecated:: 1.11
|
.. deprecated:: 1.11
|
||||||
|
|
||||||
|
@ -1264,16 +1228,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
the class-based :class:`PasswordChangeDoneView`.
|
the class-based :class:`PasswordChangeDoneView`.
|
||||||
|
|
||||||
The optional arguments of this view are similar to the class-based
|
The optional arguments of this view are similar to the class-based
|
||||||
``PasswordChangeDoneView`` attributes. In addition, it has:
|
``PasswordChangeDoneView`` attributes.
|
||||||
|
|
||||||
* ``current_app``: A hint indicating which application contains the current
|
|
||||||
view. See the :ref:`namespaced URL resolution strategy
|
|
||||||
<topics-http-reversing-url-namespaces>` for more information.
|
|
||||||
|
|
||||||
.. deprecated:: 1.9
|
|
||||||
|
|
||||||
The ``current_app`` parameter is deprecated and will be removed in
|
|
||||||
Django 2.0. Callers should set ``request.current_app`` instead.
|
|
||||||
|
|
||||||
.. class:: PasswordChangeDoneView
|
.. class:: PasswordChangeDoneView
|
||||||
|
|
||||||
|
@ -1292,7 +1247,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
* ``extra_context``: A dictionary of context data that will be added to the
|
* ``extra_context``: A dictionary of context data that will be added to the
|
||||||
default context data passed to the template.
|
default context data passed to the template.
|
||||||
|
|
||||||
.. function:: password_reset(request, template_name='registration/password_reset_form.html', email_template_name='registration/password_reset_email.html', subject_template_name='registration/password_reset_subject.txt', password_reset_form=PasswordResetForm, token_generator=default_token_generator, post_reset_redirect=None, from_email=None, current_app=None, extra_context=None, html_email_template_name=None, extra_email_context=None)
|
.. function:: password_reset(request, template_name='registration/password_reset_form.html', email_template_name='registration/password_reset_email.html', subject_template_name='registration/password_reset_subject.txt', password_reset_form=PasswordResetForm, token_generator=default_token_generator, post_reset_redirect=None, from_email=None, extra_context=None, html_email_template_name=None, extra_email_context=None)
|
||||||
|
|
||||||
.. deprecated:: 1.11
|
.. deprecated:: 1.11
|
||||||
|
|
||||||
|
@ -1302,16 +1257,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
The optional arguments of this view are similar to the class-based
|
The optional arguments of this view are similar to the class-based
|
||||||
``PasswordResetView`` attributes, except the ``post_reset_redirect`` and
|
``PasswordResetView`` attributes, except the ``post_reset_redirect`` and
|
||||||
``password_reset_form`` arguments which map to the ``success_url`` and
|
``password_reset_form`` arguments which map to the ``success_url`` and
|
||||||
``form_class`` attributes of the class-based view. In addition, it has:
|
``form_class`` attributes of the class-based view.
|
||||||
|
|
||||||
* ``current_app``: A hint indicating which application contains the current
|
|
||||||
view. See the :ref:`namespaced URL resolution strategy
|
|
||||||
<topics-http-reversing-url-namespaces>` for more information.
|
|
||||||
|
|
||||||
.. deprecated:: 1.9
|
|
||||||
|
|
||||||
The ``current_app`` parameter is deprecated and will be removed in
|
|
||||||
Django 2.0. Callers should set ``request.current_app`` instead.
|
|
||||||
|
|
||||||
.. class:: PasswordResetView
|
.. class:: PasswordResetView
|
||||||
|
|
||||||
|
@ -1413,7 +1359,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
The same template context is used for subject template. Subject must be
|
The same template context is used for subject template. Subject must be
|
||||||
single line plain text string.
|
single line plain text string.
|
||||||
|
|
||||||
.. function:: password_reset_done(request, template_name='registration/password_reset_done.html', current_app=None, extra_context=None)
|
.. function:: password_reset_done(request, template_name='registration/password_reset_done.html', extra_context=None)
|
||||||
|
|
||||||
.. deprecated:: 1.11
|
.. deprecated:: 1.11
|
||||||
|
|
||||||
|
@ -1421,16 +1367,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
the class-based :class:`PasswordResetDoneView`.
|
the class-based :class:`PasswordResetDoneView`.
|
||||||
|
|
||||||
The optional arguments of this view are similar to the class-based
|
The optional arguments of this view are similar to the class-based
|
||||||
``PasswordResetDoneView`` attributes. In addition, it has:
|
``PasswordResetDoneView`` attributes.
|
||||||
|
|
||||||
* ``current_app``: A hint indicating which application contains the current
|
|
||||||
view. See the :ref:`namespaced URL resolution strategy
|
|
||||||
<topics-http-reversing-url-namespaces>` for more information.
|
|
||||||
|
|
||||||
.. deprecated:: 1.9
|
|
||||||
|
|
||||||
The ``current_app`` parameter is deprecated and will be removed in
|
|
||||||
Django 2.0. Callers should set ``request.current_app`` instead.
|
|
||||||
|
|
||||||
.. class:: PasswordResetDoneView
|
.. class:: PasswordResetDoneView
|
||||||
|
|
||||||
|
@ -1457,7 +1394,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
* ``extra_context``: A dictionary of context data that will be added to the
|
* ``extra_context``: A dictionary of context data that will be added to the
|
||||||
default context data passed to the template.
|
default context data passed to the template.
|
||||||
|
|
||||||
.. function:: password_reset_confirm(request, uidb64=None, token=None, template_name='registration/password_reset_confirm.html', token_generator=default_token_generator, set_password_form=SetPasswordForm, post_reset_redirect=None, current_app=None, extra_context=None)
|
.. function:: password_reset_confirm(request, uidb64=None, token=None, template_name='registration/password_reset_confirm.html', token_generator=default_token_generator, set_password_form=SetPasswordForm, post_reset_redirect=None, extra_context=None)
|
||||||
|
|
||||||
.. deprecated:: 1.11
|
.. deprecated:: 1.11
|
||||||
|
|
||||||
|
@ -1467,16 +1404,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
The optional arguments of this view are similar to the class-based
|
The optional arguments of this view are similar to the class-based
|
||||||
``PasswordResetConfirmView`` attributes, except the ``post_reset_redirect``
|
``PasswordResetConfirmView`` attributes, except the ``post_reset_redirect``
|
||||||
and ``set_password_form`` arguments which map to the ``success_url`` and
|
and ``set_password_form`` arguments which map to the ``success_url`` and
|
||||||
``form_class`` attributes of the class-based view. In addition, it has:
|
``form_class`` attributes of the class-based view.
|
||||||
|
|
||||||
* ``current_app``: A hint indicating which application contains the current
|
|
||||||
view. See the :ref:`namespaced URL resolution strategy
|
|
||||||
<topics-http-reversing-url-namespaces>` for more information.
|
|
||||||
|
|
||||||
.. deprecated:: 1.9
|
|
||||||
|
|
||||||
The ``current_app`` parameter is deprecated and will be removed in
|
|
||||||
Django 2.0. Callers should set ``request.current_app`` instead.
|
|
||||||
|
|
||||||
.. class:: PasswordResetConfirmView
|
.. class:: PasswordResetConfirmView
|
||||||
|
|
||||||
|
@ -1523,7 +1451,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
* ``validlink``: Boolean, True if the link (combination of ``uidb64`` and
|
* ``validlink``: Boolean, True if the link (combination of ``uidb64`` and
|
||||||
``token``) is valid or unused yet.
|
``token``) is valid or unused yet.
|
||||||
|
|
||||||
.. function:: password_reset_complete(request, template_name='registration/password_reset_complete.html', current_app=None, extra_context=None)
|
.. function:: password_reset_complete(request, template_name='registration/password_reset_complete.html', extra_context=None)
|
||||||
|
|
||||||
.. deprecated:: 1.11
|
.. deprecated:: 1.11
|
||||||
|
|
||||||
|
@ -1531,16 +1459,7 @@ implementation details see :ref:`using-the-views`.
|
||||||
by the class-based :class:`PasswordResetCompleteView`.
|
by the class-based :class:`PasswordResetCompleteView`.
|
||||||
|
|
||||||
The optional arguments of this view are similar to the class-based
|
The optional arguments of this view are similar to the class-based
|
||||||
``PasswordResetCompleteView`` attributes. In addition, it has:
|
``PasswordResetCompleteView`` attributes.
|
||||||
|
|
||||||
* ``current_app``: A hint indicating which application contains the current
|
|
||||||
view. See the :ref:`namespaced URL resolution strategy
|
|
||||||
<topics-http-reversing-url-namespaces>` for more information.
|
|
||||||
|
|
||||||
.. deprecated:: 1.9
|
|
||||||
|
|
||||||
The ``current_app`` parameter is deprecated and will be removed in
|
|
||||||
Django 2.0. Callers should set ``request.current_app`` instead.
|
|
||||||
|
|
||||||
.. class:: PasswordResetCompleteView
|
.. class:: PasswordResetCompleteView
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue