Django RetrieveAPIView где находится место прав для небольшого обновления базы данных

Я использую фреймворк Django REST, и все еще довольно новичок в этом...

Я хочу получить сообщение из базы данных с помощью метода generics.RetrieveAPIView, что я и сделал. Но я хочу также установить поле read в true в базе данных. Где это можно сделать (возможно, в сериализаторе)?

Это идея:

class MessageDetail(generics.RetrieveAPIView):
  serializer_class = MessageSerializer
  permission_classes = [IsAuthenticated] 
  queryset = AppUserMessage.objects.all()

  AfterTheRequst(self) # This is what I want to do
    obj.read_at = time.now()

Вы можете переопределить метод retrieve и выполнить обновление перед отправкой ответа.

def retrieve(self, request, *args, **kwargs):
    instance = self.get_object()
    serializer = self.get_serializer(instance)
    if instance:    # check if instace is there 
        instance.read_at = time.now()  # here update
    return Response(serializer.data)
Вернуться на верх