Heim >Backend-Entwicklung >Python-Tutorial >Wie filtere ich Django-Abfrageobjekte nach Datumsbereich?

Wie filtere ich Django-Abfrageobjekte nach Datumsbereich?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 00:27:03358Durchsuche

How to Filter Django Query Objects by Date Range?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Mocks, was sind sie?Nächster Artikel:Mocks, was sind sie?