向Baton.Autodiscover管理子类添加Allauth login_所需的装饰器

2024-06-02 10:07:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Django-Baton,它在核心Django模板文件周围注入CSS和JS样式和实用程序,同时使用Django-AllAuth实现更健壮的身份验证和帐户访问功能

我正在使用documented method将管理员登录重定向到AllAuth登录页面:

from django.contrib import admin
from django.contrib.auth.decorators import login_required

admin.site.login = login_required(admin.site.login)

我应该将其应用于“AdminSite的每个实例”

网址:

from baton.autodiscover import admin
from django.urls import path, include

urlpatterns = [
    path("", admin.site.urls),
    path("baton/", include("baton.urls")),
    path("integrations/", include("integrations.urls")),
    path("queryfilter/", include("core.urls")),
    path("accounts/", include("allauth.urls")),
]

如果没有baton.autodiscover,则http://127.0.0.1:8000/会根据需要转发到accounts/login,但如果存在自动发现,则情况并非如此

INSTALLED_APPS = [
    "dal",
    "dal_select2",
    "dal_queryset_sequence",
    "baton",
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "django.contrib.sites",  # required for allauth
    "users",
    "core",
    "integrations",
    "allauth",
    "allauth.account",
    "allauth.socialaccount",
    "baton.autodiscover",
]

不知道是否需要在baton.autodiscover之前对django.contrib.admin进行子类化并应用auth decorator,但不确定如何/在何处执行

谢谢你的意见,我对Django很陌生,所以也谢谢你的耐心


Tags: pathdjangofromimportauthincludeadminrequired
1条回答
网友
1楼 · 发布于 2024-06-02 10:07:55

django.contrib.admin.AdminSitebaton.autodiscover.adminsource)的父类

你必须在urls.py中装饰baton.autodiscover.admin

网址:

from baton.autodiscover import admin
from django.urls import path, include

admin.site.login = login_required(admin.site.login)

urlpatterns = [
    path("", admin.site.urls),
    path("baton/", include("baton.urls")),
    path("integrations/", include("integrations.urls")),
    path("queryfilter/", include("core.urls")),
    path("accounts/", include("allauth.urls")),
]

相关问题 更多 >