我在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
提交
取消