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

Wie filtere ich Django-Objekte nach einem Datumsbereich?

Susan Sarandon
Susan SarandonOriginal
2024-11-04 12:53:29509Durchsuche

How to Filter Django Objects by a Date Range?

Abfrageobjekte nach Datumsbereich in Django filtern

Bei der Arbeit mit Django-Modellen, die Datumsfelder enthalten, ist es häufig erforderlich, Objekte basierend zu filtern in einem bestimmten Datumsbereich. Dadurch können Sie nur die Objekte abrufen, die in einen bestimmten Zeitraum fallen.

Problem:

Betrachten Sie das folgende Modell mit einem Datumsfeld:

<code class="python">class Sample(models.Model):
    date = fields.DateField(auto_now=False)</code>

Wie können Sie die Objekte dieses Modells filtern, um nur diejenigen mit Daten zwischen dem 1. Januar 2011 und dem 31. Januar 2011 einzuschließen?

Lösung:

Um Objekte nach einem Datumsbereich zu filtern, verwenden Sie den Bereichsfilter in Kombination mit dem Feld, das Sie filtern möchten:

<code class="python">Sample.objects.filter(date__range=["2011-01-01", "2011-01-31"])</code>

Alternative zur monatlichen Filterung:

Wenn Sie Objekte nur nach Monat filtern müssen, können Sie die folgende Syntax verwenden:

<code class="python">Sample.objects.filter(date__year='2011',
                      date__month='01')</code>

Bereichsenden ausschließen:

Wenn Sie möchten Wenn Sie die angegebenen Bereichsenden ausschließen möchten, sollten Sie die Verwendung der Filter „gt“ (größer als) und „lt“ (kleiner als) in Betracht ziehen, wie von Bernhard Vallant in der Bearbeitung vorgeschlagen:

<code class="python">Sample.objects.filter(date__gt="2011-01-01",
                      date__lt="2011-01-31")</code>

Das obige ist der detaillierte Inhalt vonWie filtere ich Django-Objekte nach einem 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