【发布时间】:2020-12-10 14:04:03
【问题描述】:
我在发出 PATCH 请求时尝试部分更新我的 ProfileSerializer。但是我无法做到这一点,因为默认情况下 Serializer 不允许进行部分更改。我正在使用 Django Rest 框架 UpdateModelMixin 来处理我的补丁请求。我可以在哪里设置partial=True?
查看:
class ProfileViewPartialUpdate(GenericAPIView, UpdateModelMixin):
queryset = Profile.objects.all()
serializer_class = ProfileSerializer
lookup_field = 'token'
lookup_url_kwarg = 'pk'
def patch(self, request, *args, **kwargs):
return self.partial_update(request, *args, **kwargs)
序列化器:
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ('token', 'bio', 'name', 'email', 'sport', 'location', 'image')
【问题讨论】:
-
“不允许进行部分更改”是什么意思?你有任何错误吗?反应如何?此外,如果您正在发出 HTTP PATCH 请求,DRF 将自动设置
partial=True -
@ArakkalAbu 我的错误是 PATCH 404 Bad Request
-
404状态码表示您引用了数据库中不存在的实体 -
抱歉 400 错误请求
-
@ArakkalAbu 还有什么问题吗?
标签: django django-rest-framework axios partial serialization