Loading docs/topics/auth/default.txt +69 −9 Original line number Diff line number Diff line Loading @@ -673,18 +673,78 @@ Django provides several views that you can use for handling login, logout, and password management. These make use of the :ref:`stock auth forms <built-in-auth-forms>` but you can pass in your own forms as well. Django provides no default template for the authentication views - however the template context is documented for each view below. Django provides no default template for the authentication views. You should create your own templates for the views you want to use. The template context is documented in each view, see :ref:`all-authentication-views`. .. _using-the-views: Using the views ~~~~~~~~~~~~~~~ There are different methods to implement these views in your project. The easiest way is to include the provided URLconf in ``django.contrib.auth.urls`` in your own URLconf, for example:: urlpatterns = [ url('^', include('django.contrib.auth.urls')) ] This will include the following URL patterns:: ^login/$ [name='login'] ^logout/$ [name='logout'] ^password_change/$ [name='password_change'] ^password_change/done/$ [name='password_change_done'] ^password_reset/$ [name='password_reset'] ^password_reset/done/$ [name='password_reset_done'] ^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$ [name='password_reset_confirm'] ^reset/done/$ [name='password_reset_complete'] The views provide a URL name for easier reference. See :doc:`the URL documentation </topics/http/urls>` for details on using named URL patterns. If you want more control over your URLs, you can reference a specific view in your URLconf:: urlpatterns = [ url('^change-password/', 'django.contrib.auth.views.password_change') ] The views have optional arguments you can use to alter the behavior of the view. For example, if you want to change the template name a view uses, you can provide the ``template_name`` argument. A way to do this is to provide keyword arguments in the URLconf, these will be passed on to the view. For example:: urlpatterns = [ url( '^change-password/', 'django.contrib.auth.views.password_change', {'template_name': 'change-password.html'} ) ] All views return a :class:`~django.template.response.TemplateResponse` instance, which allows you to easily customize the response data before rendering. A way to do this is to wrap a view in your own view:: from django.contrib.auth import views def change_password(request): template_response = views.password_change(request) # Do something with `template_response` return template_response For more details, see the :doc:`TemplateResponse documentation </ref/template-response>`. The built-in views all return a :class:`~django.template.response.TemplateResponse` instance, which allows you to easily customize the response data before rendering. For more details, see the :doc:`TemplateResponse documentation </ref/template-response>`. .. _all-authentication-views: Most built-in authentication views provide a URL name for easier reference. See :doc:`the URL documentation </topics/http/urls>` for details on using named URL patterns. All authentication views ~~~~~~~~~~~~~~~~~~~~~~~~ This is a list with all the views ``django.contrib.auth`` provides. For implementation details see :ref:`using-the-views`. .. function:: login(request, [template_name, redirect_field_name, authentication_form, current_app, extra_context]) Loading Loading
docs/topics/auth/default.txt +69 −9 Original line number Diff line number Diff line Loading @@ -673,18 +673,78 @@ Django provides several views that you can use for handling login, logout, and password management. These make use of the :ref:`stock auth forms <built-in-auth-forms>` but you can pass in your own forms as well. Django provides no default template for the authentication views - however the template context is documented for each view below. Django provides no default template for the authentication views. You should create your own templates for the views you want to use. The template context is documented in each view, see :ref:`all-authentication-views`. .. _using-the-views: Using the views ~~~~~~~~~~~~~~~ There are different methods to implement these views in your project. The easiest way is to include the provided URLconf in ``django.contrib.auth.urls`` in your own URLconf, for example:: urlpatterns = [ url('^', include('django.contrib.auth.urls')) ] This will include the following URL patterns:: ^login/$ [name='login'] ^logout/$ [name='logout'] ^password_change/$ [name='password_change'] ^password_change/done/$ [name='password_change_done'] ^password_reset/$ [name='password_reset'] ^password_reset/done/$ [name='password_reset_done'] ^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$ [name='password_reset_confirm'] ^reset/done/$ [name='password_reset_complete'] The views provide a URL name for easier reference. See :doc:`the URL documentation </topics/http/urls>` for details on using named URL patterns. If you want more control over your URLs, you can reference a specific view in your URLconf:: urlpatterns = [ url('^change-password/', 'django.contrib.auth.views.password_change') ] The views have optional arguments you can use to alter the behavior of the view. For example, if you want to change the template name a view uses, you can provide the ``template_name`` argument. A way to do this is to provide keyword arguments in the URLconf, these will be passed on to the view. For example:: urlpatterns = [ url( '^change-password/', 'django.contrib.auth.views.password_change', {'template_name': 'change-password.html'} ) ] All views return a :class:`~django.template.response.TemplateResponse` instance, which allows you to easily customize the response data before rendering. A way to do this is to wrap a view in your own view:: from django.contrib.auth import views def change_password(request): template_response = views.password_change(request) # Do something with `template_response` return template_response For more details, see the :doc:`TemplateResponse documentation </ref/template-response>`. The built-in views all return a :class:`~django.template.response.TemplateResponse` instance, which allows you to easily customize the response data before rendering. For more details, see the :doc:`TemplateResponse documentation </ref/template-response>`. .. _all-authentication-views: Most built-in authentication views provide a URL name for easier reference. See :doc:`the URL documentation </topics/http/urls>` for details on using named URL patterns. All authentication views ~~~~~~~~~~~~~~~~~~~~~~~~ This is a list with all the views ``django.contrib.auth`` provides. For implementation details see :ref:`using-the-views`. .. function:: login(request, [template_name, redirect_field_name, authentication_form, current_app, extra_context]) Loading