Django и HTMX - AttributeError: объект 'int' не имеет атрибута 'get'
Я пытаюсь заставить этот вызов POST работать с Django:
<span id="quantity-in-cart">{{item.quantity_in_cart}}</span>
<button class="btn btn-success btn-sm" hx-post="/cart/add/1/" hx-target="#quantity-in-cart" hx-swap="outerHTML">+</button>
Но когда я нажимаю кнопку, которая выполняет вызов POST, я получаю эту ошибку:
Internal Server Error: /cart/add/4/
Traceback (most recent call last):
File "/home/neisor/.local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/home/neisor/.local/lib/python3.9/site-packages/django/utils/deprecation.py", line 119, in __call__
response = self.process_response(request, response)
File "/home/neisor/.local/lib/python3.9/site-packages/django/middleware/clickjacking.py", line 26, in process_response
if response.get('X-Frame-Options') is not None:
AttributeError: 'int' object has no attribute 'get'
[22/Mar/2022 12:47:01] "POST /cart/add/4/ HTTP/1.1" 500 66757
В моем шаблоне в конце тега <body> также есть следующее:
<script>
document.body.addEventListener('htmx:configRequest', (event) => {
event.detail.headers['X-CSRFToken'] = '{{ csrf_token }}';
})
</script>
Есть идеи, как это исправить?
Спасибо
Проблема в этой строке:
return cart_items[product_id_as_string]
Django ожидает HTTP-ответ. Если вы хотите просто показать число, замените его на:
return HttpResponse(cart_items[product_id_as_string])