3

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

我正在尝试写入 aPrimaryKeyRelatedField()并且,虽然返回了 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}})

--> 正确更新

4

1 回答 1

2

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

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

有关默认编码和传统编码之间的区别,请参见此处。

于 2014-03-03T19:18:49.207 回答