Так что я знаю, что кажется, что часть этого ответа повсюду, но мне потребовалось целое время, чтобы добраться до того места, где я сейчас, и это составило около 50 различных SO-ответов, поэтому, пожалуйста, потерпите меня.
В основном, в течение последних 2 дней я пытался выяснить, как передать словарь JS со стороны клиента в мой Django views.py, чтобы я мог получить доступ к ключам и связанным значениям, в конечном итоге используяони запрашивают мою базу данных для визуализации представления, используя теги шаблонов Django.
Я наконец получил его, где я могу успешно добавить несколько значений к объекту cart_dict на стороне клиента.Однако, когда я пытаюсь отправить запрос AJAX в Django и распечатать результаты, после ключей добавляются дополнительные квадратные скобки, и я не уверен, почему.Что еще более важно, я не знаю, как это исправить, и могу только думать, что мой единственный вариант - написать скрипт для их удаления.Я надеюсь, что смогу избежать этого, и есть кое-что, чего я просто упускаю.
У меня есть ощущение, что это может быть связано со мной, когда я создаю экземпляр нового массива, чтобы добавить все повторяющиеся значения для ассоциированногоключ, но я устранял неполадки и печатал несколько раз без него, и в тот или иной момент возникла та же проблема.Я в конце своего остроумия.Любая помощь будет спасателем.Ниже приведен мой код и некоторые фотографии, на которых я печатаю объект после запуска события click cart-link .Заранее спасибо.
на стороне сервера: печать из представлений django

на стороне клиента: console.log в консоли браузера

views.py
def cart(request):
if request.is_ajax():
myDict = request.POST.dict()
print(request.POST)
print(myDict)
for x,y in myDict.items():
print(x,y)
print('this is an AJAX request')
base.html
var cart_dict = {};
var item_id;
var inventory_id;
$(".weight_select_button").click(function() {
item_id = $(this).parent().attr('id');
// var fired_button = $(this).val();
inventory_id = $(this).attr('id');
console.log(item_id + " " + inventory_id);
console.log(item_id)
});
$(".add_to_cart").click(function() {
var cart_button_item_id = $(this).val();
if(item_id == cart_button_item_id){
if(!cart_dict[item_id]){
cart_dict[item_id] = new Array();
cart_dict[item_id].push(parseInt(inventory_id, 10))
} else {
cart_dict[item_id].push(parseInt(inventory_id,10))
}
}
else {
alert("Please select a valid weight when adding to cart.")
}
item_id = null;
});
$('#cart_link').click(function(){
$.ajax({
url: '/cart/',
method: 'post',
dataType: 'json',
data: cart_dict,
success: console.log('test')
});
})