我有我的Django應用程序中的表中的複選框列表。用戶選擇其中一些,然後單擊一個操作按鈕。然後彈出一個小的彈出窗口模式表單,它們填充與選定項目相關的信息,並且還可以在彈出窗口中上傳文件。我需要通過AJAX將選定的複選框的ID和表單字段發送到Django通過Ajax發送複選框列表到Django
我已經將模式包裝在表單標籤中,並且一切正常。我正在努力將選定ID的列表發送給Django。當用戶選擇ID 31和32時,它將其作爲字符串「31,32」發送,而Django無法對其進行解碼。我相信這是一個快速修復,但我的JavaScript知識是有限的。
下面是我的代碼:
HTML:
<tr>
<td ><input class="selection-box" type="checkbox" name="action" value="{{ item.id }}"></td>
<td>...</td>
</tr>
<tr>
<td ><input class="selection-box" type="checkbox" name="action" value="{{ item.id }}"></td>
<td>...</td>
</tr>
的Javascript:
submitHandler: function() {
var matches = [];
$(".selection-box:checked").each(function() {
matches.push(this.value);
});
var form = document.forms.namedItem("fileinfo");// This is the popup form that contains that file upload box and other fields
var oData = new FormData(form);
if (matches.length) {
oData.append('action', matches);
}
$.ajax({
url: url,
processData: false,
contentType: false,
type: 'post',
data: oData,
success: function (data) {
if (data.success == true) {
location.reload();
}
}
});
}
Django的看法:
# This generates the error: ValueError: invalid literal for int() with base 10: '33,31'
selected_list = self.request.POST.getlist('action')
print selected_list ?? – Mahi
我無法打印它,因爲它會產生ValueError – Johan
http://stackoverflow.com/a/5867262/3762142幫助... –