Python 更新时不需要查找字段,但创建时需要查找字段
我正在django rest框架中使用模型视图集。 其中查找字段是company 创建用户时需要公司。 POST方法-/localhost/user/ 但是当我试图更新 PUT方法-/localhost/user/1/ 这里1是公司id 这是一个错误Python 更新时不需要查找字段,但创建时需要查找字段,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在django rest框架中使用模型视图集。 其中查找字段是company 创建用户时需要公司。 POST方法-/localhost/user/ 但是当我试图更新 PUT方法-/localhost/user/1/ 这里1是公司id 这是一个错误 { "company": [ "This field is required." ] } 序列化程序.py class UserSerializer(DynamicF
{
"company": [
"This field is required."
]
}
序列化程序.py
class UserSerializer(DynamicFieldsModelSerializer):
class Meta:
model = User
fields = "__all__"
如果我让公司允许_null=True
那么创建metod也不需要它
如何创建创建所需的公司
及
更新不需要
PUT
方法是更新,需要上传所有模型字段数据,
PATCH
方法是部分更新,只需上传部分模型字段数据
查看您将看到的源代码:
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/
你能显示用户
模型吗?@jerinterGeorge用户模型与djagno的默认用户模型相同,只是添加了外键公司。
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)
....