python - 如何在 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 文件
解决方案
您应该在保存时在序列化程序中使用 (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":[{},{}]
推荐阅读
- javascript - 在javascript中输入返回void字符串
- python-3.x - 用于快速修复的 Python 配置
- python - `python file.py` 和 `python -m file` 的区别
- python - groupby后如何计算不同组的平均相对误差?
- javascript - 如何按使用 Firebase Web 创建的时间顺序显示数据
- python - 如何将 sklearn 预处理交互变量的输出连接回原始数据帧?
- sql - TSQL 如何在 CASE 语句中进行过滤?
- c# - SQL Server 在结果中返回无效(unicode/hexidecimal)字符
- r - 填写 dbplyr 中的缺失值
- python - Pandas:如何在不添加额外列的情况下“合并”两行交替 NaN 的内容?