Django Update-Tabelle mit Daten aus einer anderen Tabelle

9

Ich habe 2 Tabellen products und catagories mit Fremdschlüssel verbunden. Ich muss das Feld products.new_cost mit dem Feld catagories.price_markup wie folgt aktualisieren:

%Vor%

In SQL ist es so einfach, aber wie macht man das mit Django ORM?

Mein vereinfachter Versuch funktioniert nicht Cannot resolve keyword 'category.price_markup' into field. :

%Vor%     
Deadly 20.09.2012, 18:21
quelle

2 Antworten

10

Gemäß der Dokumentation , Updates Die Verwendung von Join-Klauseln wird nicht unterstützt, siehe:

  

Im Gegensatz zu F () - Objekten in Filter- und Exclude-Klauseln können Sie dies jedoch nicht   Wenn Sie F () - Objekte in einem Update verwenden, können Sie Joins einfügen   Referenzfelder lokal für das Modell, das aktualisiert wird. Wenn Sie es versuchen   Wenn Sie einen Join mit einem F () -Objekt einführen, wird ein FieldError ausgelöst:

%Vor%

Gemäß diesem Problem ist dies beabsichtigt, und es ist nicht geplant, es in naher Zukunft zu ändern :

  

Das tatsächliche Problem hier scheint zu sein, dass verbundene F () Klauseln nicht sind   zulässig in update () -Anweisungen. Dies ist beabsichtigt; Unterstützung für Joins   in update () -Klauseln wurde explizit aufgrund von inhärenten entfernt   Komplikationen bei der Unterstützung im allgemeinen Fall.

    
Cesar Canassa 21.04.2016 09:46
quelle
-1

AFAIU kann mit

umgehen %Vor%     
int_ua 28.04.2015 15:55
quelle