我遇到了错误
CSRF验证失败。请求中止。
当我尝试通过一个简单的购物车应用程序使用“添加到购物车”时。
模板中的代码:
for
我的观点来自views.py:
<form action="{% url "cart:cart_add" instance.id %}" method="post">
{% csrf_token %}
{{ cart_product_form }}
<input type="submit" value="add to cart">
</form>
就我所见,一切似乎都很好,我想念什么?
我的中间件配置:
@require_POST
def cart_add(request, product_id):
cart = Cart(request)
product = get_object_or_404(Product, id=product_id)
form = CartAddProductForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update'])
return redirect('cart:cart_detail')
def cart_detail(request):
template = loader.get_template('/webapps/my_webapp/furniture_site/cart/templates/cart/detail.html')
cart = Cart(request)
for item in cart:
item['update_quantity_form'] = CartAddProductForm(initial={'quantity': item['quantity'], 'update': True})
context={'cart': cart}
return HttpResponse(template.render(context))
仍然无效的替代视图:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
]
编辑:这似乎不是已标记问题的重复,因为该问题的答案是使用render返回我正在做的请求。
答案 0 :(得分:0)
清除缓存并重新加载页面。 如果无法解决,请提供准确的错误回溯。
编辑:
from django.template import RequestContext
return render_to_response('results.html', {'results' : results}, context_instance=RequestContext(request) )
尝试一下