Heim > Artikel > Backend-Entwicklung > Wie filtere ich Django-Abfrageobjekte nach Datumsbereich?
Django-Abfrageobjekte nach Datumsbereich filtern
Bei der Arbeit mit Django-Modellen ist das Filtern von Abfrageobjekten nach Datumsbereich eine häufige Aufgabe. Um dies zu erreichen, können Sie die integrierte Datumsbereichsfunktion von Django nutzen.
Betrachten wir ein Modell, das dem in der Frage erwähnten ähnelt:
<code class="python">class Sample(models.Model): date = fields.DateField(auto_now=False)</code>
Angenommen, Sie müssen Objekte filtern, die in einen bestimmten Datumsbereich fallen, beispielsweise solche mit Daten zwischen dem 1. Januar 2011 und dem 31. Januar 2011. So können Sie das machen:
<code class="python">Sample.objects.filter(date__range=["2011-01-01", "2011-01-31"])</code>
Diese Abfrage verwendet die __range-Suche, um das Datum anzugeben Bereich, in den das Datumsfeld der Beispielobjekte fallen sollte.
Alternativ können Sie, wenn Sie Objekte monatlich filtern möchten, die folgende Syntax verwenden:
<code class="python">Sample.objects.filter(date__year='2011', date__month='01')</code>
Diese Abfrage filtert alle Objekte mit Datumsangaben im Januar 2011.
Ausgenommen Bereichsenden
Beachten Sie, dass die obigen Abfragen die Bereichsenden (d. h. 1. Januar und 31. Januar 2011) umfassen erstes Beispiel). Wenn Sie diese Bereichsenden ausschließen müssen, können Sie die Suchvorgänge __gt (größer als) und __lt (kleiner als) verwenden, wie von Bernhard Vallant in der Bearbeitung der Antwort vorgeschlagen:
<code class="python">Sample.objects.filter(date__gt="2011-01-01", date__lt="2011-01-31")</code>
Diese Abfrage filtert alle Objekte mit Datumsangaben nach dem 1. Januar 2011 und vor dem 31. Januar 2011, mit Ausnahme der Bereichsenden.
Das obige ist der detaillierte Inhalt vonWie filtere ich Django-Abfrageobjekte nach Datumsbereich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!