2011-01-05 15 views

Antwort

5

Wenn Sie jeden Datensatz mit einem anderen Wert aktualisieren müssen, dann müssen Sie natürlich über jeden Datensatz iterieren. Wenn Sie alle mit dem gleichen Wert aktualisieren möchten, verwenden Sie einfach die update-Methode des Abfrage-Sets.

+1

danke, aber das ist das gleiche wie Executemany() – goh

+0

@goh ich kann nicht 100% sagen, aber ich wäre sehr überrascht, wenn es war. Da Sie nach dem Ändern jedes Datensatzes den Speicheraufruf aufrufen, besteht keine Möglichkeit für das Back-End, zu wissen, dass es stapelweise sein soll. Es kann einen Weg geben, dies zu tun, aber das direkte Anfrage-Set/Model-API sollte dies in Ihrem Fall nicht tun. –

+0

danke für Ihren Kommentar. – goh

2

Sie können die Aktualisierungsmethode für queryset verwenden. Hier ist die Dokumentation:

http://docs.djangoproject.com/en/dev/ref/models/querysets/#update

Wenn Sie den Code anschauen, es tut Schleife über die Elemente. Genau dies nutzt der Administrator von Django, wenn er "Massenaktionen" für Objekte ausführt.

+0

@lee, Ich bin mir nicht sicher, ob ich update verwenden kann. Unterschiedliche Datensätze haben unterschiedliche aktualisierte Werte. – goh

Verwandte Themen