Как добавить точки в IntegerFiedl с помощью сериализатора DRF

У меня есть сериализатор, подобный этому, и каждый раз, когда я делаю Put на этом url, я хочу, чтобы количество_баллов увеличивалось(+=1), но теперь, когда я делаю это, оно остается таким же и не меняется. У вас есть идеи как это исправить?

class Answer(models.Model):

    number_of_points = models.IntegerField(default=0)

class AddPointsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Answer
        fields = ('number_of_points',)

    def update(self, instance, validated_data):
        instance.number_of_points += 1
        return instance

class AddPointsAnswer(generics.UpdateAPIView):
    queryset = Answer.objects.all()
    serializer_class = AddPointsSerializer

    def get_queryset(self):
        return super().get_queryset().filter(
            id=self.kwargs['pk']
        )
    path('answers/<int:pk>/addpoints', AddPointsAnswer.as_view()),
    def update(self, instance, validated_data):
        instance.number_of_points += 1
        return instance

Добавьте instance.save() к этой функции. Вы обновляете атрибут на экземпляре модели, но никогда не сохраняете его в базе данных.

Вернуться на верх