У меня проблема с HttpResponseRedirect в Django. Кажется, что независимо от параметров, которые я пытаюсь сделать, он либо генерирует ошибку, либо перенаправляет ее без изменения URL-адреса. Я использую его в пользовательском представлении login_user, и я хочу, чтобы URL-адрес в адресной строке изменился после их перенаправления. Если я использую перенаправление вместо HttpResponseRedirect, он не изменяется. В любом случае, я могу заставить его использовать правильный шаблон, но URL-адрес остается прежним. Будучи новым для Django, было бы полезно, если бы кто-нибудь мог объяснить мне, как это сделать и почему мой текущий код не работает. Я видел пару подобных вопросов для моего на Stack Exchange, но ответы не помогли.HttpResponseRedirect не работает Django 1.7
Вот некоторые детали моих views.py (обратите внимание, что отступы стали странными из-за копирования и вставки здесь и не являются причиной ошибки).
from django.http import *
from django.contrib.auth import authenticate, login, logout
def login_user(request):
logout(request)
username = password = ''
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)
return HttpResponseRedirect('dashboard')
else:
state = "Your account is not active, please contact the app administrator."
else:
state = "Your username and/or password were incorrect."
state = "Please log in below..."
context = RequestContext(request, {
'state': state,
'username': username,
})
return render_to_response('bank/auth.html', {}, context)
dashboard - это название другого вида, и оно отлично работает в перенаправлении с моего индексного представления. Я также пытался жестко кодировать URL-адрес, но это тоже не работает. Какие-либо предложения?? Благодарю.
'HttpResponseRedirect' нуждается в действительном« url »что-то вроде (например, если вы хотите перенаправить на« localhost: 8000/», вы должны вызвать' HttpResponseRedirect ('/') ', – suhailvs