Я получаю ошибку
Ошибка проверки CSRF.Запрос отменен.
при попытке использовать «добавить в корзину» с простым приложением корзины, которое я написал.
Код в моем шаблоне:
<form action="{% url "cart:cart_add" instance.id %}" method="post">
{% csrf_token %}
{{ cart_product_form }}
<input type="submit" value="add to cart">
</form>
И мои представленияfrom views.py:
@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',
]
Альтернативный видэто все еще не работает:
def cart_detail(request):
cart = Cart(request)
for item in cart:
item['update_quantity_form'] = CartAddProductForm(initial={'quantity': item['quantity'], 'update': True})
return render(request, 'cart/detail.html', {'cart': cart})
edit: Это не похоже на дублирование отмеченного вопроса, поскольку ответом на этот вопрос было использование render для запроса на возврат, что я и делаю.