【发布时间】:2017-05-27 04:20:53
【问题描述】:
我正在 Django 中尝试一个简单的用户注册表单。当我使用render_to_response时没有生成 CSRF 令牌
return render_to_response('registration/register.html', RequestContext(request, {'form': RegistrationForm()}))
其中,当我使用 render 时,会生成 CSRF 令牌
return render(request, 'registration/register.html', {'form':RegistrationForm()})
我对@987654323@ 做错了什么
以下是相关代码块
views.py
@csrf_protect
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
user = User.objects.create_user(
username=form.cleaned_data['username'],
password=form.cleaned_data['password1'],
email=form.cleaned_data['email']
)
return HttpResponseRedirect('/register_success/')
else:
return render_to_response('registration/register.html', RequestContext(request, {'form': RegistrationForm()}))
register.html
{% extends "base.html" %}
{% block title %}User Registration{% endblock %}
{% block content %}
<form method="post" action=".">
{% csrf_token %}
<table border="0">
{{ form.as_table }}
</table>
<input type="submit" value="Register" />
</form>
{% endblock %}
【问题讨论】:
标签: django render csrf render-to-response