Django - {%csrf_token%}用于模板中

时间:2017-08-18 10:19:07

标签: python django

提交后,我收到错误400和以下消息:

create_foo.html:

<form class="modal-form" method="post" action="{% url 'create_foo'> %}">
    {% csrf_token %}    
    {{ forms }} 
</form>

create_foo.py:

@require_POST
@login_required(login_url='/login/')
def create_foo(request):
#
#
if form.is_valid():
        return HttpResponse('Success', status=201)
return JsonResponse({'html': render_to_string('create_foo.html', {'forms': form}), 'message': 'Failed'}, status=400)

错误400时我有问题 我有一个消息错误的表单。

我无法改进表单上的数据并继续,我有一个错误:

/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py:67: UserWarning: A {% csrf_token %} was used in a template, but the context did not provide the value.  This is usually caused by not
       using RequestContext.
         "A {% csrf_token %} was used in a template, but the context "

1 个答案:

答案 0 :(得分:1)

警告是因为您致电request时未包括render_to_string。将其更改为:

render_to_string('create_foo.html', {'forms': form}, request=request)