Ваше перенаправление не на шаблон, а на URL.Таким образом, в вашем текущем коде при успешном входе в систему вы будете перенаправлены на http://localhost/base.html.
. Вам нужно будет изменить перенаправление на путь:
return redirect('/some-url/')
Или лучше использовать именованные URL-адреса..
return redirect('some-named-url')
# this would turn a named url into a url string such as '/auth-url/'
Ваш файл urls будет выглядеть примерно так:
from django.urls import path
from .views import*
urlpatterns = [
path('', login_view),
path('auth-url/', <some_view>, name='some-named-url'),
]
Чем лучше, тем более django способ.
Если вы не делаетеЧто-то слишком экстремальное, на что вы действительно должны обратить внимание при использовании встроенной аутентификации djangos.Он не только проверен и протестирован, но также будет исправлен, если когда-нибудь будет обнаружена уязвимость.
Чтобы сделать это, вы должны изменить URL-адреса на что-то вроде:
from django.urls import path
from django.contrib.auth.views import (
LoginView,
LogoutView,
)
urlpatterns = [
path(
'login/',
LoginView.as_view(template_name='account/login.html'),
name='login',
),
path(
'logged-in/',
<Your LoginView>,
name='logged_in',
),
path(
'logout/',
LogoutView.as_view(),
name='logout',
),
]
И вваш файл настроек:
LOGIN_URL = 'login' # this is the name of the url
LOGOUT_REDIRECT_URL = 'login' # this is the name of the url
LOGIN_REDIRECT_URL = 'logged_in' # this is the name of the url