如何在默认 Django 身份验证登录视图中使用自定义装饰器

Apa*_*aar 3 python authentication django decorator

我正在使用默认的 Django 身份验证系统。在我的网址中,我有:

urlpatterns = [
    ...
    path('', include('django.contrib.auth.urls')),
    ...
]
Run Code Online (Sandbox Code Playgroud)

现在我有一个自定义装饰器,我想将其应用到登录视图上,类似于我在注册时应用它的方式。

@example_decorator
def signup(request):
     ...
Run Code Online (Sandbox Code Playgroud)

但问题是我使用默认的登录视图。有什么方法可以将此装饰器应用到默认的 Auth View 吗?

我认为我需要扩展默认视图,但我找不到任何示例来这样做。如何才能做到这一点?

vis*_*ell 5

您可以在您之前插入装饰视图include并获得所需的行为。

from django.contrib.auth import auth_views

from your_app import example_decorator

urlpatterns = [
    ...
    path('login/', example_decorator(auth_views.LoginView.as_view()), name='login'),
    path('', include('django.contrib.auth.urls')),
    ...
]
Run Code Online (Sandbox Code Playgroud)