Bạn có thể muốn sử dụng relativedelta
từ dateutil
, thuận tiện hơn để tính toán thời gian:
import datetime
from dateutil.relativedelta import relativedelta
today = datetime.date.today()
age_25 = (today - relativedelta(years=25)).year
age_36 = (today - relativedelta(years=36)).year
Employees.objects.filter(birth_year__lte=age_25, birth_year__gte=36)
age_25
là 25 năm trước, age_36
là 36 năm trước, bạn chỉ cần truy vấn sinh nhật của mọi người rơi vào khoảng từ 25 đến 36 năm trước.
Đối với lte
và gte
kiểm tra django doc
để biết chi tiết.
Chỉnh sửa :
Trên thực tế, django orm hỗ trợ range
truy vấn, vì vậy chỉ cần làm:
Employees.objects.filter(birth_year__range=[age_36, age_25])