Django Rest Framework - PUT 到 (many=True) PrimaryKeyRelatedField()

标签 django jquery django-rest-framework

http://django-rest-framework.org/api-guide/relations.html#primarykeyrelatedfield

我正在尝试写入 PrimaryKeyRelatedField(),尽管返回了 200 状态,但正在为相关字段输入空值,而不是多个值。

$.ajax({url:'<MY MODELVIEWSET>/<ID>', type:'PUT', data:{'field1':'xyz', <FIELD IN QUESTION WITH PrimaryKeyRelatedField(many=True)>:[1,2,3]}})

--> 更新字段为空

当仅为此字段指定一个值时,更新成功且正确。

$.ajax({url:'<MY MODELVIEWSET>/<ID>', type:'PUT', data:{'field1':'xyz', <FIELD IN QUESTION WITH PrimaryKeyRelatedField(many=True)>:1}})

--> 正确更新

最佳答案

您需要将传统设置为 true,以便 jquery 将以 django 能够理解的方式对包含数组的参数进行编码:

$.ajax({
    url:'<MY MODELVIEWSET>/<ID>', 
    type:'PUT',
    traditional: true, 
    data:{field1:'xyz', field2:[1,2,3]}
})

参见here了解默认编码和传统编码之间的区别。

关于Django Rest Framework - PUT 到 (many=True) PrimaryKeyRelatedField(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17517063/

相关文章:

jQuery <select> 第一个 <option> 未禁用

jquery - 遍历这个 DOM 段的更好方法

python - Django 请求在干净的表单中不可用

django - 在 django 中扩展用户模型

javascript - 使用jquery查找html输入类型的id

Django 1.9.2 测试客户端问题

python - Django Rest框架序列化器没有给出预期的输出

python - 清理前修改传入django表单的数据

django 中的 Python 代码打印当前版权年份

python - 当父记录存在时,如何在 django rest 框架中的子序列化程序中设置外键值