在搜索结果网址中有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))
由于
答案 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
。这将导致令牌与表单一起提交。
检查您的搜索表单模板。