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:
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.
:
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.
Tags und Links django django-orm django-database