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)