Estoy intentando crear una página de inicio de sesión y de cierre de sesión con django. El problema que tengo es que cuando envío el formulario, no va a la URL que especifiqué. Cuando hago clic en el botón de inicio de sesión, quiero que vaya al http://127.0.0.1:8000/home/, pero en su lugar va al http://127.0.0.1:8000/?next=/home/.Django iniciar sesión/cerrar sesión
A continuación es mi código de la conexión/desconexión en mi view.py:
def login(request):
def errorHandler(error):
return render_to_response('login.html', {'error' : error})
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(username = username, password = password)
if user is not None:
if user.is_active:
authLogin(request, user)
fullName = user.get_full_name
return render_to_response('logged_in.html', {'full_name': fullName})
else:
error = 'Account disabled.'
return errorHandler(error)
else:
error = 'Invalid details entered.'
return errorHandler(error)
return render_to_response('login.html')
@login_required
def logout(request):
authLogout(request)
return render_to_response('logged_in.html')
mi login.html:
{% extends "base.html" %}
{% block content %}
{% if error %}
<p><b><font color="red">Error: </font></b>{{ error }}</p>
{% endif %}
<form action="/home/" method="post">
<label for="username">User name:</label>
<input type="text" name="username" value="" id="username">
<label for="password">Password:</label>
<input type="password" name="password" value="" id="password">
<input type="submit" value="Login" />
<input type="hidden" name="next" value="{{ next|escape }}" />
</form>
{% endblock %}
mi logged_in.html:
{% extends "base.html" %}
{% block name %}{{ full_name }} is {% endblock %}
{% block content %}
<p><a href='/'>Logout</a></p>
{% endblock %}
url:
(r'^$', 'myapp.views.login'),
(r'^home/$', 'myapp.views.logout'),
Por favor, ayudar a
que funciona. Sin embargo, dado que todavía es http://127.0.0.1:8000 (no cambia la URL), en realidad no utiliza la vista de cierre de sesión. Simplemente va a esa página. (la vista de cierre de sesión está establecida en/home /) – tester
'LOGIN_REDIRECT_URL = '/ home /'' en settings.py – DrTyrsa
He intentado esto antes, pero la url sigue siendo 127.0.0.1:8000. ¿Debo especificar la URL de redirección en mi vista? o podría tener algo que ver con render_to_response? He intentado con HttpResponseRedirect, pero necesito que el contenido pase a la plantilla como puede ver en mi código actualmente. – tester