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)