小编Sou*_*dar的帖子

Django - CSRF令牌生成 - render_to_response vs render

我正在Django中尝试一个简单的用户注册表单.我使用时没有生成CSRF令牌render_to_response

return render_to_response('registration/register.html',RequestContext(request,{'form':RegistrationForm()}))

在我使用的时候生成CSRF令牌 render

return render(request,'registration/register.html',{'form':RegistrationForm()})

我做错了什么 render_to_response

以下是相关的代码块

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()}))
Run Code Online (Sandbox Code Playgroud)

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 %}
Run Code Online (Sandbox Code Playgroud)

django render csrf render-to-response

5
推荐指数
1
解决办法
1577
查看次数

标签 统计

csrf ×1

django ×1

render ×1

render-to-response ×1