Ich möchte eine Abfrage machen, etwas wie
%Vor%... aber es gibt einige Fälle, in denen z. B. y keiner ist. Dies durchsucht die Datenbank buchstäblich nach Nullwerten in der y-Spalte - gibt es eine raffinierte Möglichkeit, diesen Abfrageparameter im Wesentlichen zu ignorieren, wenn es keine gibt, d. H. Das Abfragefeld
zurückgibt %Vor%Ich weiß nicht, ob ich deine Frage bekomme, aber
%Vor% gibt Ihnen das Abfrage-Set, wobei die Spalte y
nicht null ist ( IS NOT NULL
).
Hier ist die entsprechende Dokumentation.
BEARBEITEN: Überprüfen Sie, ob y keine ist, und erstellen Sie Ihr Suchfeld dynamisch:
%Vor% Wenn es zu viele Argumente gibt, mit denen Sie umgehen können, könnten Sie so etwas verwenden; Angenommen, dass x
, y
, z
in einem Wörterbuch your values
:
So etwas könnte funktionieren:
%Vor%Da QuerySets faul sind , ist dies nicht erforderlich jede Datenbankaktivität.
Sie können einen Modellmanager erstellen und ihn Ihrem Modell zuweisen, sodass Sie diesen Manager für jedes Modell verwenden können. Diese Lösung ist pythischer.
%Vor%Weisen Sie diesen Manager Ihrem Modell zu:
%Vor%Aus Ihrer Sicht können Sie den obigen Manager als:
verwenden %Vor%Jetzt musst du dir keine Gedanken um die fehlenden Werte machen :) hoffe diese Hilfe.
Ein besserer Ansatz für die ansonsten sehr gut lesbare @ Rolling-Stone-Antwort:
%Vor%Wie auch immer, abhängig von dem spezifischen Filter müssen Sie Filter in demselben Filterfilter () anwenden, so dass der "blinde" Weg nur in den einfachen Fällen funktioniert. Weitere Informationen zu diesen Fällen finden Sie Ссылка . p>
Tags und Links python django mysql django-models