小编Jes*_*ess的帖子

如何更新已注释的查询集?

我有以下型号:

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子句,查询运行没有问题,并返回我期望的.

对于带有注释后跟更新的查询,似乎会发生此错误.有没有其他方式来写这个?

django orm

12
推荐指数
2
解决办法
2772
查看次数

标签 统计

django ×1

orm ×1