Django HttpResponseRedirect vs render_to_response - как заставить форму входа вести себя так, как мне нужно
мы уже проверили следующеевопрос stackoverflow относительно различий между HttpResponse, HttpResponseRedirect и render_to_response, а также через официальные документы Django, но яЯ действительно не уверен, как лучше получить функциональность, которую яЯ ищу, чтобы создать.
Прямо сейчас у меня естьindex.html с функцией входа в систему (как видно изviews.py ниже) гдеrender_to_response
это подводит меня кПортал / index.html, Тем не менее, какurls.py (см. ниже) диктует, URL-адрес в строке URL моего браузераhttp://127.0.0.1:8000/login/
, Это означает, что обновление страницы заставляет форму снова работать.
Как мне получить этот URL (после входа в систему), чтобы выглядеть какhttp://127.0.0.1:8000/
или, если этоне возможно,http://127.0.0.1:8000/portal/
- это потому что я так думаюнеуклюже, что каждый раз, когда вы перезагружаете страницу после входа в систему, он заставляет браузер открывать приглашениеВы уверены, что хотите отправить форму еще раз?
Большое спасибо за помощь новичку в Django!
views.py
@cache_page(60 * 15)
def login_user(request):
#inactive_image_url = ""
#invalid_credentials_url = ""
context_instance=RequestContext(request)
if request.POST:
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
state = "You're successfully logged in!"
return render_to_response('ucproject/portal/index.html',
{'state':state, 'username':username}, context_instance=RequestContext(request))
else:
#state_img = inactive_image_url
state = "Your account is not active, please contact UC admin."
else:
#state_img = invalid_credentials_url
state = "Your username and/or password were incorrect."
return render_to_response('ucproject/index.html',
{'state': state,
#'state_img': state_img,
'username': username
}, context_instance=RequestContext(request))
def portal(request):
username = 'username'
return render_to_response('ucproject/portal/index.html',
{'state': state,'username': username}, context_instance=RequestContext(request))
urls.py
# Login / logout.
url(r'^registration/, 'portal.views.registration'),
url(r'^login/, 'portal.views.login_user'),
url(r'^portal/, 'portal.views.portal'),
url(r'^portal/index.html, 'portal.views.portal'),