Проверьте, отправил ли пользователь запрос перед тем, как Django Rest Framework

У меня есть эти сериализаторы для сложения и вычитания баллов в ответе на форуме.

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

    def update(self, instance, validated_data):
        instance.number_of_points += 1
        instance.save()
        return instance
class SubtractPointsSerializer(serializers.ModelSerializer):
    class Meta:
        model = Answer
        fields = ('number_of_points',)

    def update(self, instance, validated_data):

        instance.number_of_points -= 1
        instance.save()
        return instance

Viewset выглядит следующим образом (то же самое относится и к добавлению):

class SubtractPointsAnswer(generics.UpdateAPIView):
    queryset = Answer.objects.all()
    serializer_class = SubtractPointsSerializer

    def get_queryset(self):
        return super().get_queryset().filter(
            id=self.kwargs['pk']
        )

Сейчас каждый пользователь может только один раз проголосовать за ответ и один раз за него проголосовать. Поэтому кто-то может случайно проголосовать вниз, а затем снова проголосовать вверх за определенный ответ. Урлы: questions/int:pk/addpoint. questions/int:pk/subtractpoint. Поэтому я хотел бы сделать ограничение на Serializer, чтобы user_limit = 0, если request.user уже нажал upvote, то user_limit = 1, а если user_limit = 1, то возвращать ответ, что ответ уже проголосован. Но я понятия не имею, как реализовать эту логику в сериализаторе, так как я очень новичок в Django Rest Framework. Или, может быть, у вас есть идея, как ограничить количество проголосовавших пользователей?

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