Django пользовательская страница входа в систему администратора

У меня есть пользовательский механизм аутентификации для пользователей, и я хочу использовать его для админки django. Все прекрасно работает для аутентифицированных пользователей, но если неаутентифицированный пользователь открывает url /admin, он перенаправляется на /admin/login со стандартной страницей входа в админку. Я хочу перенаправить на auth/sign-in или заблокировать страницу.

urlpatterns = [
    path('admin/', admin.site.urls),
    path('admin/login', SignInView.as_view(), name='admin/login'),
    ...

Переопределение url как в блоке кода не работает. Есть идеи?

Определите их в вашем файле settings.py.

  • LOGIN_REDIRECT_URL
  • LOGIN_URL
  • LOGOUT_REDIRECT_URL

Пример:

LOGIN_REDIRECT_URL = '/accounts/dashboard'

LOGIN_URL = '/accounts/signin'

LOGOUT_REDIRECT_URL = '/accounts/signin'

Я думаю, что url-паттерны ищутся в порядке, используя первое совпадение, а не переписываются более поздними паттернами, так что вам может повезти больше с:

urlpatterns = [
    path('admin/login', SignInView.as_view(), name='admin/login'),
    path('admin/', admin.site.urls),
    ...

(я бы, вероятно, также избегал косой черты в name="", чтобы избежать путаницы)

Вернуться на верх