Django: Как получить из базы данных человека, у которого сегодня день рождения?

Добрый день, я недавно начал программировать на Django и возникла небольшая трудность с отображением даты рождения человека, у которого день рождения сегодня, из базы данных, может кто-нибудь сталкивался с этим? model.py

class HapB(models.Model):
    name = models.CharField('Имя', max_length=50)
    last_n = models.CharField('Фамилия', max_length=50)
    Otdel = models.CharField('Отдел', max_length=50)
    date_of_birth = models.DateField('Дата рождения', null=True, blank=True)

    def __str__(self):
        return self.name

Можете ли вы попробовать

from datetime import datetime, timedelta, time

today = datetime.now().date()
tomorrow = today + timedelta(1)
today_start = datetime.combine(today, time())
today_end = datetime.combine(tomorrow, time())

HapB.objects.filter(date_of_birth__lte=today_end,date_of_birth__gte=today_start)

Я думаю, что лучший и самый простой подход заключается в следующем:

from django.utils import timezone

HapB.objects.filter(date_of_birth__day=timezone.now().date().day, date_of_birth__day=timezone.now().date().month)

Или если ваше приложение не учитывает часовые пояса:

from datetime import datetime

HapB.objects.filter(date_of_birth__day=datetime.now().date().day, date_of_birth__month=datetime.now().date().month)
Вернуться на верх