我有以下型号:
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:子查询的列太多第 1 行:...SET "visible" = false WHERE "app_work"."id" IN (SELECT...
如果我删除更新子句,查询运行没有问题并返回我所期望的。
看起来此错误发生在带有注释后跟更新的查询中。有没有其他方法可以写这个?