i am sending request to backend like this
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);
}
});
the cart object is like
[{“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)
This code is insert objects into sql table, but dont render template and i see error
Internal Server Error: /orders/
Traceback (most recent call last):
File “/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/core/handlers/exception.py”, line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File “/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/core/handlers/base.py”, line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/views/generic/base.py”, line 104, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/views/generic/base.py”, line 143, in dispatch
return handler(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/danya/CodeProject/djangoMarketPlace/orders/views.py”, line 42, in post
return render(request, self.template_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/shortcuts.py”, line 25, in render
content = loader.render_to_string(template_name, context, request, using=using)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/template/loader.py”, line 62, in render_to_string
return template.render(context, request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/Users/danya/CodeProject/djangoMarketPlace/venv/lib/python3.12/site-packages/django/template/backends/jinja2.py”, line 72, in render
context.update(context_processor(request))
ValueError: dictionary update sequence element #0 has length 653; 2 is required
length 653 is len of list, if display it like string
i try to fetch like this
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);
}
});
but i also have valueError and i try change inheriting from View to CreateView
Daniil is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.