1
我試着採用了棱角分明的$ HTTP的DRF進行部分更新正確的HTTP動詞。什麼是Django的REST partial_update
在我的DRF模型視圖集我重寫partial_update
功能(服務器端)。
class AnimalTreatmentViewSet(viewsets.ModelViewSet):
queryset = MyObject.objects.all()
serializer_class = MyObjectSerializer
def create(self, request):
# It works with $http.post()
pass
def update(self, request, pk=None):
# It works with $http.put()
pass
def list(self, request):
# It works with $http.get()
pass
def partial_update(self, request, pk=None):
# This one wont work with $http.patch()
instance = self.get_object()
serializer = self.serializer_class(instance, data=request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
在客戶端角度處理用戶請求。
$http.patch('/api/my_viewset_url/1', data);
但我得到這個響應不允許的方法(補丁):/ API/my_viewset_url/1
當使用
$http.get()
要求與DRF模型視圖集中list(self, request)
它運作良好,爲獲得相同的列表無二$http.post()
與def create(self, request)
與def update(self, request)
更新對象創建對象和$http.put()
。
怎麼了?或者是什麼DRF模型正確的HTTP動詞用於partial_update視圖集中
你使用的是模型視圖嗎?哪些mixins?你可以分享視圖的其餘部分嗎?謝謝!! – bobleujr
即時通訊使用modelviewset,謝謝你的迴應! –
@bobleujr我更新了我的問題 –