Adding extra_context in Django logout built-in view

前端 未结 3 1802
情书的邮戳
情书的邮戳 2020-12-19 05:56

In django/contrib/auth/views.py there is the definition of the logout view :

def logout(request, next_page=None,
       template_name=\'registration/logged_o         


        
3条回答
  •  心在旅途
    2020-12-19 07:01

    Adding my findings for django 2.0 as the previous answer on this thread no longer works for the most recent django version.

    With 2.0, the proper way of adding a URL to your urls.py file is by using path():

    from django.urls import path
    from django.contrib.auth import views as auth_views
    
    path('accounts/logout/', auth_views.LogoutView.as_view(
      extra_context={'foo':'bar'}
    )),
    

    The code snippet to highlight here is the .as_view() function. Django 2.0 implements auth views as classes. You can read more about this in the Authentication Views documentation

    You then "convert" the class to a view using `.as_view() and you are able to pass in any class attributes defined in the source code as named parameters.

    Passing in extra_context (which defaults to None) automatically exposes these context variables to your templates.

    You can access the source code for LogoutView by following this python path: django.contrib.auth.views

    Here you can see the other class attributes you can pass into LogoutView and the other auth view classes.

提交回复
热议问题