Как отфильтровать наборы запросов менее 60 месяцев назад?
models.py
class Preschooler(Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
birthday = models.DateField(null=True, blank=True)
def age_months(self):
today = date.today()
date_diff = today - self.birthday
in_days = date_diff.days
return int((in_days) / (365 / 12))
Я хочу отфильтровать дошкольников, которым меньше 60 месяцев, используя их дату рождения, следующим образом:
Preschooler.objects.filter(birthday__month__lst=60)
Как я могу этого достичь?
Вы можете использовать Python relativedelta
с datetime.today()
[Python-doc] так:
from datetime import datetime
from dateutil.relativedelta import relativedelta
less_than_60_mon = datetime.today() - relativedelta(months=60)
Preschooler.objects.filter(birthday__lt=less_than_60_mon)