Ich habe folgende Modelle:Wie Aktualisieren eines Anfragesatzes, der annotiert wurde?
class Work(models.Model):
visible = models.BooleanField(default=False)
class Book(models.Model):
work = models.ForeignKey('Work')
ich wie so einige Zeilen zu aktualisieren, bin versucht:
qs=Work.objects.all()
qs.annotate(Count('book')).filter(Q(book__count__gt=1)).update(visible=False)
Dies ist jedoch geben einen Fehler:
Database: Unterabfrage hat zu viele Spalten ZEILE 1: ... SET "sichtbar" = falsch WHERE "app_work". "id" IN (AUSWAHL ...
Wenn ich t entferne Er Update-Klausel, die Abfrage läuft ohne Probleme und gibt zurück, was ich erwarte.
Es sieht aus wie dieser Fehler für Abfragen mit einem Kommentar gefolgt von einem Update auftritt. Gibt es eine andere Möglichkeit, dies zu schreiben?
Ich brauche eigentlich nicht das Komplement. Die Abfrage gibt die richtigen Zeilen zurück, aber das Problem ist, dass ich sie nicht aktualisieren kann. – jess
Rechts. Mein Punkt ist, dass Sie den gleichen grundlegenden Ansatz verwenden können, um ein unannoted Abfrage-Set zu erhalten, das Bulk-updateable sein sollte. – acjay
@jess: Ich habe gerade bearbeitet, um ein Beispiel zu geben, was ich meinte. Lass es mich wissen, wenn das funktioniert – acjay