Мне нужно перенаправить пользователя, если он зашел на его домашнюю страницу, когда он переходит на основной URL.urls.py
urlpatterns = [
url(r'^$', LoginView.as_view(template_name='landing.html'), name='landing')
]
Я попытался создать собственное представление вместо использования встроенного входа в django.
new urls.py
urlpatterns = [
url(r'^$', landing_validation, name='landing')
]
views.py
def landing_validation(request):
if request.user.is_authenticated:
return HttpResponseRedirect('/user/home')
else:
return login(request)
Это работает хорошо, когда пользователь вошел в систему и пытается зайти на целевую страницу, он перенаправляет его на домашнюю страницу, т.е. когда пользователь пытается http://127.0.0.1:8000, он перенаправляет его на http://127.0.0.1:8000/user/home/. Но когда пользователь входит в системуя получаю сообщение об ошибке следующим образом: login() missing 1 required positional argument: 'user'
Я установил URL-адрес в settings.py следующим образом, но никогда не использовал их:
LOGIN_REDIRECT_URL = '/user/home'
LOGIN_URL = '/'
Любое понимание вопроса приветствуется.
Выход из системы работает отлично и выглядит следующим образом.
Urls.py
url(r'^logout/$',
logoutUser,
name='logout'
),
Views.py
def logoutUser(request):
logout(request)
return HttpResponseRedirect('/')