Как патчить несколько объектов одновременно в Django Rest Framework?

Я создаю приложение, в котором существует модель уведомлений. Поэтому мне нужно такое поведение: когда человек запрашивает страницу уведомлений, поле is_read, которое является булевым, превращается из FALSE по умолчанию в TRUE. Проблема в том, что объектов может быть много, поэтому как установить TRUE для всех из них?

Модель:

class Notification(models.Model):
    is_read = models.BooleanField(default=False)
    notification_from = models.ForeignKey(Order, on_delete=models.CASCADE, related_name="notiffrom")
    notification_to = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name="notifto")

Вид:

class UserNotificationView(ListModelMixin, GenericAPIView, CreateModelMixin):

    serializer_class = NotificationSerializer

    def get_queryset(self):
        notification_to = self.kwargs["notification_to"]
        return Notification.objects.filter(notification_to=notification_to)


    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

Я знаю, что в Django есть массовые запросы, но мне сложно делать их с помощью DRF. Может быть, есть какие-то другие способы?

Вы могли бы добавить функцию обновления в функцию get_queryset.

class UserNotificationView(ListModelMixin, GenericAPIView, CreateModelMixin):

serializer_class = NotificationSerializer

def get_queryset(self):
    notification_to = self.kwargs["notification_to"]
    queryset = Notification.objects.filter(notification_to=notification_to)
    queryset.update(is_read = True)
    return queryset

def get(self, request, *args, **kwargs):
    return self.list(request, *args, **kwargs)
Вернуться на верх