Abfrage, wenn Parameter keine django ist

9

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%     
Brian D 10.08.2011, 06:45
quelle

5 Antworten

11

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 :

gespeichert sind %Vor%     
jazz 10.08.2011, 06:53
quelle
4

So etwas könnte funktionieren:

%Vor%

Da QuerySets faul sind , ist dies nicht erforderlich jede Datenbankaktivität.

    
rolling stone 10.08.2011 07:11
quelle
2

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.

    
Aamir Adnan 10.08.2011 08:45
quelle
1

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>     

rewritten 10.08.2011 10:42
quelle
0

Sie können schreiben:

%Vor%     
recamshak 10.08.2011 07:15
quelle

Tags und Links