如何通过多对多 PK 进行发布或放置

She*_*797 4 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')
Run Code Online (Sandbox Code Playgroud)

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

track 是一个多多领域

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

如果我通过了

track = "Track1"
Run Code Online (Sandbox Code Playgroud)

其中“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
Run Code Online (Sandbox Code Playgroud)



截图1

在此输入图像描述

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



截图2

在此输入图像描述



截图3

在此输入图像描述

sth*_*hzg 6

发送纯 JSON 对象

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

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

在上面的例子中,下面的操作有效吗?

{
  "uuid": "the-long-uuid-here",
  "icds": [
    "A00",
    "A001"
  ]
}
Run Code Online (Sandbox Code Playgroud)

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

由于我对不提供替代方案并不完全满意,所以我进行了更多测试(最新的 Postman 看起来有所不同)。

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

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


截图邮递员

使用 x-www-form-urlencoded 发帖