微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Allauth login_required 装饰器添加到 Baton.Autodiscover Admin 子类

如何解决将 Allauth login_required 装饰器添加到 Baton.Autodiscover Admin 子类

我正在使用 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.autodiscoverhttp://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",]

想知道是否需要子类化 django.contrib.admin 并在 baton.autodiscover 之前以某种方式应用 auth 装饰器,但不确定如何/在何处执行此操作。

感谢您的投入,我对 Django 还很陌生,所以也感谢您的耐心等待。

解决方法

django.contrib.admin.AdminSitebaton.autodiscover.admin(source) 的父类。

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

网址:

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")),]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。