与Django生日对象比较日期时间

2024-09-30 06:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于我剧本的问题。我想知道所有从我的数据库里有超过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我得到:

{cd2}

print birthday我得到:

^{pr2}$

所以我的目标是减去date和birthday,并比较如果date - birthday = 16 years,我打印元素,否则什么都没有。在

我有两个问题:

  • 如何从birthday中只提取year?在
  • 目前比较方法是int和{}。如果我能从生日中提取一年,它应该行得通吗?在

谢谢你

编辑:

例如,我想让所有从今年开始已经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)

Tags: agetodaydatetimedaterequestpageresultyear
1条回答
网友
1楼 · 发布于 2024-09-30 06:26:02

如果您需要特定年份的筛选记录,您只需使用日期字段的__year方法:

age_16 = (today - relativedelta(years=16))
result = Identity.objects.filter(birthday__year=age_16.year).order_by‌​('last‌​name')

相关问题 更多 >

    热门问题