我在Django rest框架中使用模型viewset。其中,查找场公司 class UserViewSet(viewsets.ModelViewSet): """ A viewset for viewing and editing user instances. """ serializer_class = UserSerializer queryset = User.objects.all() lookup_field = 'company'创建用户时需要公司。POST方法-/ localhost / user /但是当我尝试更新PUT方法-/ localhost / user / 1 /此处1是company_id它正在引发错误 { "company": [ "This field is required." ] }serializers.py class UserSerializer(DynamicFieldsModelSerializer): class Meta: model = User fields = "__all__"如果我使公司 allow_null = True,那么创建方法也将不需要它。我如何才能使创建公司成为必需。并且 不需要进行更新
1 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
PUT方法是更新,需要上传所有模型字段数据, PATCH方法是partial_update,仅需要上传部分模型字段数据。
查看源代码,您将看到:
def partial_update(self, request, *args, **kwargs):
kwargs['partial'] = True
return self.update(request, *args, **kwargs)
def update(self, request, *args, **kwargs):
partial = kwargs.pop('partial', False)
instance = self.get_object()
self.before_update(instance)
serializer = self.get_serializer(instance, data=request.data, partial=partial)
....
partial=partial是重要的,还是您需要PATCH方法-/localhost/user/1/
添加回答
举报
0/150
提交
取消