【发布时间】:2021-10-23 15:44:58
【问题描述】:
我有博客,我会重新排序。当我通过邮递员发送多个对象,然后通过循环更新和保存时出现错误。
这些是我发送的对象 ->
[
{
"id":18,
"name": "a",
"is_active": true,
"author_name": 1,
"category": 1,
"tag": [1,2],
"order": 888888
},
{
"id": 17,
"name": "a",
"is_active": true,
"author_name": 1,
"category": 1,
"tag": [
1
],
"order": 999999999
}
]
但我有这个错误 -> { “non_field_errors”:[ “无效数据。需要字典,但得到了列表。” ] }
这是我的代码->
serializer.py
class BlogSerializer(serializers.ModelSerializer):
class Meta:
model = Blog
fields = ['id', 'name', 'is_active', 'author_name','category','tag','order']
extra_kwargs = {
'is_active': {'read_only': True},
'id':{"read_only":False}
}
view.py
class UpdateOrder(generics.UpdateAPIView):
serializer_class = BlogSerializer
queryset = Blog.objects.all()
def put(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data, many=isinstance(request.data, list))
serializer.is_valid(raise_exception=True)
for i in serializer.validated_data:
blog = Blog.objects.get(id=i["id"])
serializer = BlogSerializer(instance=blog, data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
【问题讨论】:
标签: python json django rest django-rest-framework