Лукап date

Лукап date применяется к полям типа DateTimeField в QuerySet и позволяет фильтровать записи по дате, игнорируя время. Он извлекает только дату из DateTimeField и сравнивает её с заданным значением. Лукап date часто используется в комбинации с другими операторами поиска, такими как gte, lte, gt, lt, exact и другими.

Синтаксис

pythonModel.objects.filter(field_name__date__lookup=value)

Пример

Давайте отфильтруем статьи, созданные в определенную дату:

pythonfrom myapp.models import Article
from datetime import date

# Получаем статьи, созданные 2026-01-15
articles = Article.objects.filter(created_at__date=date(2026, 1, 15))
for article in articles:
  print(article.title)

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

python"article 1"
"article 3"

Пример

Давайте отфильтруем статьи, созданные после определенной даты:

pythonfrom myapp.models import Article
from datetime import date

# Получаем статьи, созданные после 2026-01-01
articles = Article.objects.filter(created_at__date__gt=date(2026, 1, 1))
for article in articles:
  print(article.title)

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

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

Пример

Давайте отфильтруем статьи, созданные в диапазоне дат:

pythonfrom myapp.models import Article
from datetime import date

# Получаем статьи, созданные с 2026-01-01 по 2026-01-31
articles = Article.objects.filter(
  created_at__date__gte=date(2026, 1, 1),
  created_at__date__lte=date(2026, 1, 31)
)
for article in articles:
  print(article.title)

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

python"article 1"
"article 2"

Пример

Давайте отфильтруем статьи, созданные в указанном месяце и году:

pythonfrom myapp.models import Article
from datetime import date

# Получаем статьи, созданные в январе 2026 года
articles = Article.objects.filter(
  created_at__date__gte=date(2026, 1, 1),
  created_at__date__lt=date(2026, 2, 1)
)
for article in articles:
  print(article.title)

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

python"article 1"
"article 2"

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

  • метод filter,
    который фильтрует QuerySet по заданным условиям
  • лукап year,
    который извлекает год из даты
  • лукап month,
    который извлекает месяц из даты
  • лукап day,
    который извлекает день из даты