Django 管理员登录 Allauth 解决方法

问题描述 投票:0回答:1

Django-Allauth 不限制 Django 管理登录页面的登录尝试。幸运的是 Allauth 提供了一个解决方法。

但是由于我是初学者,我不知道将代码放在哪个 Django 文件中。我需要将其放入多个文件中吗?

https://docs.allauth.org/en/latest/common/admin.html

它说: “一个简单的解决方法是要求用户在进入 Django 管理站点的登录页面之前先登录:”

from django.conf import settings
from django.contrib import admin
from django.contrib.admin.views.decorators import staff_member_required

admin.site.login = staff_member_required(
    admin.site.login, login_url=settings.LOGIN_URL
)

还值得注意的是:“它需要应用于 AdminSite 的每个实例。”

我怎样才能让它发挥作用?我应该把这个代码放在哪里?

django-admin django-allauth
1个回答
0
投票

无论您在何处导入 AdminSite,都需要添加它:

一个简单的解决方法是要求用户在进入 Django 管理站点的登录页面之前登录(请注意,以下内容需要应用于 AdminSite 的每个实例)

就我而言,我在项目的“main”-urls.py 文件中导入了 admin-URL,如下所示:

    path(
    'admin/', 
    admin.site.urls
    ),

所以我刚刚在上面添加了这个:

from django.contrib.admin.views.decorators import staff_member_required
from django.conf import settings 

admin.site.login = staff_member_required(
    admin.site.login, login_url=settings.LOGIN_URL
)

这导致了这个 urls.py 文件:

admin.site.login = staff_member_required(
admin.site.login, login_url=settings.LOGIN_URL
)
urlpatterns = [
    path(
        'admin/', 
        admin.site.urls
        ),
]
© www.soinside.com 2019 - 2024. All rights reserved.