Maison  >  Article  >  développement back-end  >  Comment filtrer les objets Django par plage de dates ?

Comment filtrer les objets Django par plage de dates ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 12:53:29426parcourir

How to Filter Django Objects by a Date Range?

Filtrer les objets de requête par plage de dates dans Django

Lorsque vous travaillez avec des modèles Django contenant des champs de date, il devient souvent nécessaire de filtrer les objets en fonction sur une plage de dates spécifiée. Cela vous permet de récupérer uniquement les objets qui se situent dans une période de temps spécifique.

Problème :

Considérez le modèle suivant avec un champ de date :

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

Comment filtrer les objets de ce modèle pour inclure uniquement ceux dont les dates sont comprises entre le 1er janvier 2011 et 31 janvier 2011 ?

Solution :

Pour filtrer les objets par plage de dates, utilisez le filtre de plage en combinaison avec le champ que vous souhaitez filtrer :

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

Alternative pour le filtrage mensuel :

Si il vous suffit de filtrer les objets en fonction du mois, vous pouvez utiliser la syntaxe suivante :

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

Exclure les fins de plage :

Si vous souhaitez exclure le spécifié aux extrémités de la plage, pensez à utiliser les filtres gt (supérieur à) et lt (inférieur à) comme suggéré par Bernhard Vallant dans l'édition :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn