私は次のモデルがあります:注釈付きのクエリセットを更新するには?
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 ...
彼は更新句、クエリは問題なく実行され、私が期待しているものを返します。
このエラーは、更新が続く注釈付きクエリのために起こるように見えます。これを書くための他の方法がありますか?
私は実際に補完を必要としません。クエリは正しい行を返していますが、問題は私がそれらを更新できないことです。 – jess
右。私の要点は、同じ基本的なアプローチを使用して、一括更新可能な注釈付きクエリセットを取得できることです。 – acjay
@jess:ちょうど私が意味するものの例を含めるように編集しました。そのことがわかったら教えてください – acjay