我正在django rest框架中使用模型视图集。 查找字段是 company
class UserViewSet(viewsets.ModelViewSet):
"""
A viewset for viewing and editing user instances.
"""
serializer_class = UserSerializer
queryset = User.objects.all()
lookup_field = 'company'
创建用户时需要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__"
如果我成立 company allow_null = True 那么创建方法也不需要。
如何创建创建所需的公司。
和 不需要进行更新
答案 0 :(得分:0)
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/