5

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()}))

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 %}
4

1 に答える 1