我希望能够一次性部分更新多个项目。 我已经添加了一个mixin以允许我进行批量创建(并且运作良好),但即使我添加了一个参数,它也不允许对列表进行patch操作。
我猜这是一个路由问题。 我需要一个新的视图来处理/
上的PATCH请求(而不是/id/
),但我已经超出了我的能力范围。
针对此问题的现有答案在3.8中无效,至少对我没有用。 我需要对以下内容做什么?
class ResourceSerializer(serializers.ModelSerializer):
class Meta:
model = Resource
fields = ('id', 'name', ...)
read_only_fields = ('id',)
class BulkMixin:
def get_serializer(self, *args, **kwargs):
if isinstance(kwargs.get('data', {}), list):
kwargs['many'] = True
kwargs['partial'] = True
return super().get_serializer(*args, **kwargs)
class ResourceViewSet(BulkMixin, viewsets.ModelViewSet):
serializer_class = ResourceSerializer