РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
114 of 818 menu

Лукап month

Лукап month применяется к полям типа DateField или DateTimeField в методах фильтрации и позволяет выбирать записи, у которых месяц в указанной дате соответствует заданному числовому значению. Этот лукап удобно использовать для выборки записей за конкретный месяц, например, для получения всех статей, опубликованных в определенном месяце независимо от года.

Синтаксис

Model.objects.filter(field__month=value)

Где field - это имя поля модели типа DateField или DateTimeField, а value - целое число от 1 до 12, обозначающее месяц (январь - 1, декабрь - 12).

Пример

Допустим, у нас есть модель статьи с датой публикации:

from django.db import models class Article(models.Model): title = models.CharField(max_length=100) published_at = models.DateTimeField(auto_now_add=True)

Найдем все статьи, опубликованные в марте:

from myapp.models import Article march_articles = Article.objects.filter(published_at__month=3) for article in march_articles: print(article.title)

Результат выполнения кода:

"article 1" "article 2" "article 3"

Пример

Получим все статьи, опубликованные в декабре текущего года:

from myapp.models import Article from datetime import date current_year = date.today().year december_articles = Article.objects.filter( published_at__year=current_year, published_at__month=12 ) for article in december_articles: print(article.title)

Результат выполнения кода:

"New Year article 1" "New Year article 2"

Пример

Лукап month можно комбинировать с другими условиями, например, выбрать статьи, опубликованные в январе и имеющие статус "published":

from myapp.models import Article january_published = Article.objects.filter( published_at__month=1, status='published' ) for article in january_published: print(f"{article.title} - {article.published_at}")

Результат выполнения кода:

"article 1 - 2025-01-15 10:30:00" "article 2 - 2025-01-22 14:20:00"

Смотрите также

  • лукап year,
    который фильтрует записи по году
  • лукап day,
    который фильтрует записи по дню месяца
  • лукап week,
    который фильтрует записи по неделе года
  • лукап quarter,
    который фильтрует записи по кварталу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить