我正在尝试通过Ajax调用发送一个普通的javascript数组,并且发生了一些奇怪的事情。
这是我的功能:
// Save new Strategy
$('.tab-pane').on('click', 'button.saveStrat', function() {
var stratType = $('#typeValue').val(); // Set by newEntry method in swot-nav.js
var label = $('#newStratLabel').val(); // Form element in new_swot_modal.html
var details = $('#newStratDetails').val(); // Form element edit_swot_modal.html
var entries = [];
// Build a list of SWOT entries that the user has identified as associated to this strategy.
$('input.entryCheckbox[type=checkbox]').each(function () {
if (this.checked) {
entries.push($(this).val());
}
});
console.log(entries);
$.ajax({
url: '/add_swot_strategy/',
type: "POST",
data: {
'type': stratType,
'label': label,
'details': details,
'entries': entries
},
dataType: 'json',
success: function (data) {
appendNewItem(data, swotType)
}
});
resetAddForm()
});
以下是我的Django测试服务器收到它的方式:
<QueryDict: {'label': [''], 'type': ['A'], 'details': [''], 'entries[]': ['16', '23', '26']}>
entries
标签后的额外括号是什么?这是预期的行为吗?
我可以继续这样做,还是违反规定?
答案 0 :(得分:0)
这是预期的行为。
https://github.com/django/django/blob/master/django/utils/datastructures.py
获取列表数据:request.POST.getlist('entries')