У меня есть следующие модели:
class Work(models.Model):
visible = models.BooleanField(default=False)
class Book(models.Model):
work = models.ForeignKey('Work')
Я пытаюсь обновить некоторые строки следующим образом:
qs=Work.objects.all()
qs.annotate(Count('book')).filter(Q(book__count__gt=1)).update(visible=False)
Однако это дает ошибку:
DatabaseError: в подзапросе слишком много столбцов LINE 1:... SET "visible" = false WHERE "app_work". "Id" IN (SELECT...
Если я удаляю предложение update, запрос запускается без проблем и возвращает то, что я ожидаю.
Похоже, эта ошибка возникает для запросов с аннотатом, за которым следует обновление. Есть ли другой способ написать это?