Замените страницу входа в систему администратора Django
Мне нужно заменить страницу входа в Django Admin. Причина в том, что я добавил некоторую дополнительную аутентификацию на своей собственной странице входа, однако я не знаю, как переопределить вход на сайте администратора.
Вот решение. Внутри urls.py
добавьте путь к новой странице входа в систему над URL-адресами ваших администраторов следующим образом
path('admin/login/', login_view, name='new_admin_login'), # login_view is the custom login view
path('admin/', admin.site.urls),
Создание пользовательского AdminSite
- это способ Django делать такие вещи. В частности, в вашем случае установите AdminSite.login_form
from django.contrib.admin import AdminSite
from django.contrib.auth.forms import AuthenticationForm
from django.urls import path
class CustomAuthenticationForm(AuthenticationForm):
# override the methods you want
...
class CustomAdminSite(AdminSite):
login_form = CustomAuthenticationForm
admin_site = CustomAdminSite()
urlpatterns = [
path("admin/", admin_site.urls),
]