Как патчить несколько объектов одновременно в 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)