[英]Compare datetime with Django birthday objects
我有一個關於我的腳本的問題。 我想知道所有從我的數據庫中獲得超過 16 年的人。 我想在用戶觸發功能時檢查這一點。
我有這個功能:
def Recensement_array(request) :
date = datetime.now().year
print date # I get year from now
birthday = Identity.objects.values_list('birthday', flat=True) # Return list with all birthday values
for element in birthday :
if date - element < 117 :
print "ok < 117"
else :
print "ok > 117"
從print date
我得到:
2017
從print birthday
我得到:
<QuerySet [datetime.date(1991, 12, 23), datetime.date(1900, 9, 12), datetime.date(1900, 9, 12), datetime.date(1900, 9, 12), datetime.date(1900, 9, 12), datetime.date(1089, 9, 22), datetime.date(1900, 9, 12), datetime.date(1900, 9, 12), datetime.date(1089, 9, 22), datetime.date(1089, 9, 22), datetime.date(1089, 9, 22), datetime.date(1089, 9, 22), datetime.date(1990, 12, 12)]>
所以我的目標是用生日減去日期並比較date - birthday = 16 years
,我打印元素,否則什么都沒有。
我有兩個問題:
birthday
提取year
?int
和tuple
到現在為止。 如果我只能從生日中提取年份,它應該可以正常工作嗎?謝謝
編輯 :
例如,我想獲取所有自今年年初以來已滿 16 歲或將在第一年之前滿 16 歲的人:
def Recensement_array(request) :
today = datetime.now()
age_16 = (today - relativedelta(years=16))
result = Identity.objects.filter(birthday__range=[age_16, today]).order_by('lastname')
paginator = Paginator(result, 3)
page = request.GET.get('page', 1)
try:
result = paginator.page(page)
except PageNotAnInteger:
result = paginator.page(1)
except EmptyPage:
result = paginator.page(paginator.num_pages)
context = {
"Identity":Identity,
"age_16":age_16,
"datetime" : datetime,
"result" : result,
"PageNotAnInteger":PageNotAnInteger,
}
return render(request, 'Recensement_resume.html', context)
如果您需要過濾某個特定年份的記錄,您可以使用日期字段的__year
方法:
age_16 = (today - relativedelta(years=16))
result = Identity.objects.filter(birthday__year=age_16.year).order_by('lastname')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.