我有以下型号:
class Work(models.Model):
visible = models.BooleanField(default=False)
class Book(models.Model):
work = models.ForeignKey('Work')
Run Code Online (Sandbox Code Playgroud)
我试图像这样更新一些行:
qs=Work.objects.all()
qs.annotate(Count('book')).filter(Q(book__count__gt=1)).update(visible=False)
Run Code Online (Sandbox Code Playgroud)
但是,这是一个错误:
DatabaseError:子查询有太多列LINE 1:... SET"visible"= false WHERE"app_work"."id"IN(SELECT ...
如果我删除update子句,查询运行没有问题,并返回我期望的.
对于带有注释后跟更新的查询,似乎会发生此错误.有没有其他方式来写这个?