Я создаю проект Django. Однако я наткнулся на небольшой сбой. Мой urls.py выглядит так
url(r'^login/(?P<nextLoc>)$', 'Home.views.login'),
url(r'^logout/$', 'Home.views.logout'),
Мой файл views.py в приложении Home выглядит следующим образом:
def login(request,nextLoc):
if request.method == "POST":
form = AuthenticationForm(request.POST)
user=auth.authenticate(username=request.POST['username'],password=request.POST['password'])
if user is not None:
if user.is_active:
auth.login(request, user)
return redirect(nextLoc)
else:
error='This account has been disabled by the administrator. Contact the administrator for enabling the said account'
else:
error='The username/password pair is incorrect. Check your credentials and try again.'
else:
if request.user.is_authenticated():
return redirect("/profile/")
form = AuthenticationForm()
error=''
return render_to_response('login.html',{'FORM':form,'ERROR':error},context_instance=RequestContext(request))
def logout(request):
auth.logout(request)
return redirect('/')
Теперь, когда я иду на страницу входа, она открывается, как и ожидалось. После отправки формы я получаю сообщение об ошибке, в котором говорится, что не удается найти URL-адреса модуля. Немного покопавшись, я заметил, что перенаправление ("/") фактически переводит в http://localhost/login/
вместо http://localhost/
. То же самое происходит при выходе из системы, то есть он пытается открыть URL http://localhost/logout/
вместо http://localhost/
. По сути, когда открытая страница http://localhost/login
, redirect('/')
добавляет / к концу текущего URL, и вуаля - я получаю URL, который я не ожидал - http://localhost/login/
. Я не могу заставить его перенаправить в корень сайта с помощью перенаправления.
Пожалуйста, помогите мне с этим и, если возможно, объясните причину этого иррационального поведения Джанго