django过滤器比天更旧? [英] django filter older than day(s)?

查看:99
本文介绍了django过滤器比天更旧?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

日期是用户输入的数字,以获得比用户输入的天数
(例如,如果用户32天将获得超过30天的结果)。

 快速试用:

class Entry(models.Model):
entered = models.DateTimeField()

>>> from datetime import datetime
>>>>输入(输入= datetime.now())。save()
>>> Entry.objects.filter(entered__lte = datetime.now())
[<条目:条目对象>]
>>> Entry.objects.filter(entered__gte = datetime.now())
[]
>>> Entry.objects.filter(entered__gte = datetime.now(),entered__lte = datetime(2009,11,1,0,0))
[<条目:条目对象>]

我的问题和我的尝试

  xxxx__day__lte。 

来自输入字段的last_contact_filled输入



<$ p $ xrange中的day_filter的p> (1,int(last_contact_filled)+1):
qdict ['last_contact__day'] = day_filter

在Django中最好的方法是什么?
在我的情况下按天过滤?

解决方案

这样的东西可以为你工作:从$ datetime import datetime,timedelta
how_many_days = 30
MyObject.objects.filter(entered__gte = datetime.now)p>

 ()-timedelta(days = how_many_days))


The day is number user will input to get the result that older than (days from user input) for example if user 32 days will get the results that oder than 30days.

A quick try-out:

class Entry(models.Model):
    entered = models.DateTimeField()

>>> from datetime import datetime
>>> Entry(entered = datetime.now()).save()
>>> Entry.objects.filter(entered__lte = datetime.now())
[<Entry: Entry object>]
>>> Entry.objects.filter(entered__gte = datetime.now())
[]
>>> Entry.objects.filter(entered__gte = datetime.now(), entered__lte=datetime(2009,11,1,0,0))
[<Entry: Entry object>]

My problem and my trying

xxxx__day__lte.

last_contact_filled input from input field

for day_filter in xrange(1,int(last_contact_filled)+1):
                qdict['last_contact__day']=day_filter

What's the best way to do this in Django? for filter by day(s) in my case?

解决方案

Something like this would work for you:

from datetime import datetime, timedelta
how_many_days = 30
MyObject.objects.filter(entered__gte=datetime.now()-timedelta(days=how_many_days))

这篇关于django过滤器比天更旧?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆