javascript - 将 javascript 数组传递给 Django View

标签 javascript jquery django django-views

我正在使用 django 并有一个搜索结果页面,我希望能够使用 ajax (jquery) 请求按类别进行过滤。页面侧面有一个过滤栏,当有人选择某些类别并点击提交时,相应的结果应该会显示在页面上。我的代码看起来像这样:

<input type="checkbox" name="category1" value="1" />
<input type="checkbox" name="category2" value="2" />
<input type="button" name="submit" onclick="{
    var cats = new Array();
    $(input[type=checkbox]:checked).each(function() {
        cats.push($(this).val());
    });
    $.getJSON('page.html', {'cats':cats}, function(data) {...});
}" />

但是在 django View 中,当我尝试读取 cats 数组时它返回 500 错误。但是,我可以毫无问题地将标量和字符串传递给 Django View 。

有什么想法吗?有没有更优雅的 jQuery 方法可以在不使用 javascript 数组的情况下执行此操作?

最佳答案

您可以使用 jQuery 的 serializeArray() 方法,而不是手动获取字段值,该方法将一组字段转换为可以作为 JSON 发送的数组。请注意,您可能希望两个复选框都具有相同名称,这样当它被序列化时,它就会变成 Django 将解释为列表的内容。

正如史蒂夫所说,为了进一步提供帮助,我们需要知道 View 在做什么以及错误是什么。

关于javascript - 将 javascript 数组传递给 Django View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3971429/

相关文章:

使用 node.js 处理 Javascript 异步异常

jquery - 使用 Geoplugin 基于国家/地区的自动下拉菜单

python - 无法在django中将Sqlite迁移到mysql

python - Pro Django 这本书是否仍然相关?

javascript - Chrome 扩展 : Get Parameter from URL

javascript - 为什么即使我没有将 vuex 状态绑定(bind)到任何 html 输入元素,我的 vuex 状态也会在更改组件级别状态时发生变化?

通过 vagrant(更改的源代码)在 Web 应用程序中出现 Javascript 语法错误

javascript - 调用 iframe 函数

javascript - 在 css 类中禁用控件的不同方法

Python-Django [SSL : WRONG_VERSION_NUMBER] Error