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!