django过滤器比天更早?

时间:2009-12-31 05:25:04

标签: django

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

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>]

我的问题和我的尝试

xxxx__day__lte.

输入字段

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

在Django中执行此操作的最佳方法是什么? 在我的情况下按天过滤?

3 个答案:

答案 0 :(得分:58)

这样的事情会对你有用:

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

答案 1 :(得分:9)

我们可以使用Django timezone.now()和timedelta

$.ajax({            
    type: "POST",
    url: "/spares/search/getresults",
    dataType: "json",
    data: "val="+ searchval,
    success: function(response){
        if (response.error == false) {
            var _content = "";
            $.each(response.result, function(index, value){
                _content += "<tr class='productChoose'> <td class='hide'>"+ value.id +"</td> <td class='hide'>"+ prod_id +"</td> <td class='hide'>"+ article +"</td> <td>"+ value.cd_cred +"</td> <td >"+ value.name_org +"</td> <td >"+ value.quality +"</td> <td class='hide'>"+ article_description +"</td> <td>" + '<button type="button" id="add"class="btn-xs btn btn-info add">Add </button>' +"</td> </tr>";         
            }); 

            $(".choosCred").append(_content);
        }  
    }
});

答案 2 :(得分:1)

timedelta(-30)添加到过滤器中的datetime