【问题标题】:Django Rest Framework - PUT to (many=True) PrimaryKeyRelatedField()Django Rest Framework - PUT 到 (many=True) PrimaryKeyRelatedField()
【发布时间】:2013-07-05 05:17:09
【问题描述】:

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}})

-->正确更新

【问题讨论】:

  • 你能展示你的模型和序列化器定义吗?

标签: django jquery django-rest-framework


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-09-20
    • 2018-12-15
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多