Я создаю проект Django. Тем не менее, я столкнулся с небольшой икоташкой. Мой URLS.PY выглядит так
url(r'^login/(?P<nextLoc>)$', 'Home.views.login'),
url(r'^logout/$', 'Home.views.logout'),
My Views.py в домашнем приложении выглядит следующим образом:
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-адреса и Voila - я получаю Урл, который я не ожидал - http: // localhost / login /
. Я не могу получить его для перенаправления до корня сайта, используя перенаправление.
Пожалуйста, помогите мне с этим и, если возможно, также объясните причину этого иррационального поведения Django