【问题标题】:How to add points to an IntegerFiedl with serializer DRF如何使用序列化程序 DRF 向 IntegerFiedl 添加点
【发布时间】:2022-02-04 00:52:38
【问题描述】:

我有这样的序列化程序,每次我放那个网址时,我希望 number_of_points 增加(+ = 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()),

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:
        def update(self, instance, validated_data):
            instance.number_of_points += 1
            return instance
    

    instance.save() 添加到此函数。您正在更新模型实例上的属性,但从未将其保存到数据库中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      相关资源
      最近更新 更多