Я пытаюсь обновить свои данные в модели 'VoterList' с помощью API PUT, но я не знаю, какую функцию я должен использовать в моем файле 'views.py' для обработки поступающего запроса PUT, потому что в API PUT, Мы используем параметры из URL, чтобы выбрать соответствующую запись из модели для обновления, а затем обновить ее, используя данные, полученные из API PUT.
model.py
class VoterList(models.Model):
# id = models.IntegerField(auto_created= True, primary_key=True)
name = models.CharField( max_length=20)
email = models.EmailField()
mobile = models.IntegerField()
city = models.CharField( max_length=20)
type = models.CharField(max_length=20)
def __str__(self):
return self.name
serializers.py
class FillVoterListSerializers(serializers.HyperlinkedModelSerializer):
class Meta:
model = VoterList
fields = ('id','name', 'email', 'mobile', 'city', 'type')
def update(self, instance, validated_data):
instance.name = validated_data.pop("name", instance.name)
instance.email = validated_data.pop("email", instance.email)
instance.save()
return instance
Я сам управляю кодом для PUT в сериализаторах.
views.py
class UpdateVoter(APIView):
serializer_class = FillVoterListSerializers
permission_classes = (AllowAny,)
def post(self, request,*args,**kwargs):
isDataExist = VoterList.objects.get(id=request.data.get('id'))
if not isDataExist:
return Response({"message":"No Voter exist with this id."})
else:
isDataUpdated = self.serializer_class(isDataExist, request.data, partial=True)
if isDataUpdated.is_valid():
isDataUpdated.save()
return Response({"message": "Voter updated."})
else:
return Response({"message": "All fields are Mandatory."})
urls.py
urlpatterns = [
url('api/updateVoter/(?P<id>[0-9]+)/$', UpdateVoter.as_view(), name= "updateVoter")]
Так какой код я должен написать в моем view.py для обработки запроса PUT.
Примечание. Я хочу сообщить вам, что готовлю API для мобильных приложений, поэтому, пожалуйста, ответьте соответствующим образом.
Любая помощь приветствуется.