亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查找字段在更新時不是必需的,但在創建時是必需的

查找字段在更新時不是必需的,但在創建時是必需的

UYOU 2021-04-26 06:08:23
我在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/


查看完整回答
反對 回復 2021-05-11
  • 1 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號