Django ValueError: элемент последовательности обновления словаря #0 имеет длину 653; требуется 2
я отправляю запрос на бэкенд следующим образом
const createOrderButton = document.getElementById('createUserCart');
createOrderButton.addEventListener('click', function () {
const urlAddress = document.getElementById('cart-wrapper').getAttribute('action');
console.log(JSON.stringify(cart));
if (urlAddress === '/orders/') {
let promise = fetch(urlAddress, {
method: "POST",
headers: {
'Content-Type': 'application/json',
"X-CSRFToken": CSRF_TOKEN
},
body: JSON.stringify(cart)
});
console.log(promise);
}
});
Объект корзины имеет вид. [{"product_id" : 1, "name" : "item1", "img_src" : "https://...", ...}, {}, ...]
my views.py
class CreateCart(View):
template_name = "orders/index.html"
def post(self, request):
user_cart = json.loads(request.body.decode())
random_id = uuid.uuid4()
date_create = now()
cart_objects_to_create = [
Cart(
user=User.objects.get(id=request.user.id),
product=Product.objects.get(
id=int(el['product_id'])
),
cart_id=random_id,
date_create=date_create
)
for el in user_cart
]
Cart.objects.bulk_create(cart_objects_to_create)
return render(request, self.template_name)
Этот код вставляет объекты в sql таблицу, но не выводит шаблон и я вижу ошибку
Внутренняя
ошибка сервера: /orders/ Traceback (последний последний вызов): File "/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^ Файл "/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/core/handlers/base.py", строка 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/views/generic/base.py", строка 104, in view return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/views/generic/base.py", строка 143, in dispatch return handler(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Users/danya/CodeProject/djangoMarketPlace/orders/views.py", строка 42, в post return render(request, self.template_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/shortcuts.py", строка 25, в render content = loader.render_to_string(template_name, context, request, using=using) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл "/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/telength 653 - это длина списка, если отобразить его как строку
я пытаюсь получить данные следующим образом
createOrderButton.addEventListener('click', function () {
const urlAddress = document.getElementById('cart-wrapper').getAttribute('action');
console.log(JSON.stringify(cart));
if (urlAddress === '/orders/') {
let promise = fetch(urlAddress, {
method: "POST",
headers: {
'Content-Type': 'application/json',
"X-CSRFToken": CSRF_TOKEN
},
body: JSON.stringify({"cart": JSON.stringify(cart)})
});
console.log(promise);
}
});
но у меня также есть valueError и я пытаюсь изменить наследование от View на CreateView