如何通过多个PK来发布或放置

时间:2015-06-09 12:50:05

标签: django rest django-rest-framework postman

class AlbumSerializer(serializers.ModelSerializer):
    tracks = serializers.PrimaryKeyRelatedField(many=True, queryset=Track.objects.all(), )

    class Meta:
        model = Album
        fields = ('album_name', 'artist', 'tracks')

添加多首曲目的格式是什么

track是一个很多领域

尝试了数组,逗号分隔但没有运气

如果我通过

track = "Track1"

其中“Track1”是Track 1的主键

如何添加['Track1', 'Track2']

实际代码

class TreatmentTemplateSerializer(serializers.ModelSerializer):
    icds = serializers.PrimaryKeyRelatedField(read_only=False, many=True, queryset=ICD_10.objects.all())
    class Meta:
        model = Treatment_template

<小时/>
屏幕截图1

enter image description here

Postman支持以上格式的数组??

<小时/>
屏幕截图2

enter image description here

<小时/>
屏幕截图3

enter image description here

1 个答案:

答案 0 :(得分:2)

发送普通JSON对象

我建议直接发送JSON而不是form-datax-www-form-urlencoded来测试复杂的请求数据(包括数组或嵌套对象)。为此,请点击raw并将JSON对象粘贴到那里。

要获得格式良好的JSON对象,我通常首先向已存在的资源发出GET请求。然后我可以复制响应,将请求方法更改为PUT,单击raw按钮并粘贴json。然后我可以开始修改对象并测试端点。

在上面的例子中,以下是否有效?

{
  "uuid": "the-long-uuid-here",
  "icds": [
    "A00",
    "A001"
  ]
}

更新:使用x-www-form-urlencoded放置多个m2m ID

由于我并不完全满意于没有提供替代方案,所以我测试了一些(使用最新的Postman看起来不同)。

您可以使用x-www-form-urlencoded传递多个值。为此,请添加具有相同标签icds的多个行,并一次添加一个值。

请注意,我使用提供books的端点对其进行了测试,在您的用例中为icds。屏幕截图中的数据将以books=1&books=3&last_name=foobar传输,DRF端点可正确获取该数据。


截图邮递员

Posting with x-www-form-urlencoded