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

时间:2013-07-07 22:33:00

标签: 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]}})

- &GT;更新后的字段为空

如果只为此字段指定了一个值,则更新成功且正确。

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

- &GT;正确更新

1 个答案:

答案 0 :(得分:2)

你需要将traditional设置为true,因此jquery会以django理解的方式编码包含数组的params:

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

有关默认和传统编码之间的区别,请参阅here