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 的每个实例。”
我怎样才能让它发挥作用?我应该把这个代码放在哪里?
无论您在何处导入 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
),
]