首页 > 解决方案 > 如何在 REST 中发布多个条目

问题描述

我正在构建存储人员姓名、薪水和费用的 REST API。如何同时发布多个人的数据,例如数组?

这是我的 serializers.py 文件

from rest_framework import serializers
from .models import Bucketlist


class BucketlistSerializer(serializers.ModelSerializer):
    class Meta:
        model = Bucketlist
        fields = ('id','name', 'date_created', 'salary','Expenditure')
        read_only_fields = ('date_created',)

这是我的views.py 文件

view.py 的截图

标签: pythondjangorest

解决方案


您应该在保存时在序列化程序中使用 (many=True)

data = BucketlistSerializer(data = your_post_array,many=True)
if data.is_valid():
   data.save()

将此添加到您的视图中

    def get_serializer(self, *args, **kwargs):

        if isinstance(kwargs.get('data', {}), list):
           kwargs['many'] = True
        return super("your view class name ", self).get_serializer(*args, **kwargs)

用于功能基础视图

@api_view(['GET','POST'])
   def somefunction(request):



    if request.method == 'POST':
       data = BucketlistSerializer(data = request.data["key_for_data"], many=True)
       if data.is_valid():
          data.save()
          return(data.data)
    return(data.errors)

发布数据将是:{"key_for_data":[{},{}]


推荐阅读