Django restfamework put метод не работает
Я создаю rest api используя DRF метод get и post работают отлично, но метод put не обновляет запрос
вот мой views.py
from django.shortcuts import render
from rest_framework import viewsets
# Create your views here.
from rest_framework.generics import get_object_or_404
from rest_framework.response import Response
from BarakaSalesSystemApp.models import Farmer
from BarakaSalesSystemApp.serializers import FarmerSerializer
def list(self, request):
farmer = Farmer.objects.all()
serializer = FarmerSerializer(farmer, many=True, context={"request": request})
response_dict = {"error": False, "message": "All Farmers List Data", "data": serializer.data}
return Response(response_dict)
def create(self, request):
try:
serializer = FarmerSerializer(data=request.data, context={"request": request})
serializer.is_valid(raise_exception=True)
serializer.save()
dict_response = {"error": False, "message": "Farmers Data Saved Successfully"}
except:
dict_response = {"error": True, "message": "Error During Saving Farmers Data"}
return Response(dict_response)
def update(self, request, pk=None):
try:
queryset = Farmer.objects.all()
farmer = get_object_or_404(queryset, pk=pk)
serializer = FarmerSerializer(farmer, data=request.data, context={"request": request})
serializer.is_valid(raise_exception=True)
serializer.save()
dict_response = {"error": False, "message": "Successfully Updated Farmer Data"}
except:
dict_response = {"error": True, "message": "Error During Updating Farmer Data"}
return Response(dict_response)
farmer_list = FarmerViewSet.as_view({"get": "list"})
farmer_create = FarmerViewSet.as_view({"post": "create"})
farmer_update = FarmerViewSet.as_view({"put": "update"})
и это мой serializer.py
from rest_framework import serializers
from BarakaSalesSystemApp.models import Farmer, Customer, Order, Bill, Employee, Delivery
class FarmerSerializer(serializers.ModelSerializer):
class Meta:
model = Farmer
fields = ["name", "address", "contact", "in_stock"]
При запросе put request на postman он выдает сообщение об ошибке и не обновляется