Deseo realizar un inicio de sesión para mi sitio. Básicamente copié y pegué los siguientes bits del libro de Django juntos. Sin embargo, sigo recibiendo un error (error en la verificación de CSRF. Solicitud cancelada) al enviar mi formulario de registro. ¿Alguien puede decirme qué provocó este error y cómo solucionarlo?csrf error en django
Aquí está mi código:
views.py:
# Create your views here.
from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
new_user = form.save()
return HttpResponseRedirect("/books/")
else:
form = UserCreationForm()
return render_to_response("registration/register.html", {
'form': form,
})
register.html:
<html>
<body>
{% block title %}Create an account{% endblock %}
{% block content %}
<h1>Create an account</h1>
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Create the account">
</form>
{% endblock %}
</body>
</html>
Con django actual, la mejor solución sería usar render() en lugar de render_to_response(). –