私は次のモデルを持っています:
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: subquery has too many columns LINE 1: ...SET "visible" = false WHERE "app_work"."id" IN (SELECT...
update 句を削除すると、クエリは問題なく実行され、期待どおりの結果が返されます。
このエラーは、注釈の後に更新が続くクエリで発生するようです。これを書く他の方法はありますか?