搜索结果网址中的django csrf_token

时间:2013-02-24 09:55:49

标签: django django-forms django-views

在搜索结果网址中有csrf。不知道为什么会有,以及如何删除它。搜索效果很好。这是URL

/search/?csrfmiddlewaretoken=675d1340034e094866d15a921407e3fc&q=testing

这里是观点:

def search(request):
    query = request.GET.get('q', '')
    rezult = []
    if query:
    qset1 = (
        Q(title__icontains=query) 
    )
    result = Product.objects.filter(qset1).distinct()
    if result.count() == 1:
        return HttpResponseRedirect(result[0].get_absolute_url())
    return render_to_response('search/search.html',{'query': query, 'result': result, },context_instance=RequestContext(request))

由于

3 个答案:

答案 0 :(得分:13)

从模板中的表单中删除{% csrf_token %},因为您正在发出GET请求,所以不需要它。

答案 1 :(得分:2)

您在表单中添加了{% csrf_token %}。如果您不需要csrf从表单中删除它并添加csrf_exempt。

看看这个django样本:

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def my_view(request):
     return HttpResponse('Hello world')

答案 2 :(得分:1)

我认为您已在其中一个搜索表单的{% csrf_token %}元素中添加了input。这将导致令牌与表单一起提交。

检查您的搜索表单模板。