django过滤日期条件

时间:2013-04-09 04:59:15

标签: django python-2.7

我在3月10日发布了第一份工作(jobname = job1),它应该来自(liveate = march15)并于3月20日到期。

我将在4月15日发布第二份工作(jobname = job2),它应该来自(liveate = april20)并于4月25日到期

我在may20上发布了第3个职位(jobname = job3),它应该生活在(liveate = may25)并在may30过期。

在使用“jobname”和“liveate”进行过滤时,我必须显示应该使“liveate”大于或等于“今天的日期”的作业。

我该怎么写这个观点?

提前帮助我,谢谢。

2 个答案:

答案 0 :(得分:0)

//order by livedate
jobs = Job.objects.filter(livedate__gte=datetime.date.today()).order_by('livedate')

//or order by livedate with filter by job
jobs = Job.objects.filter(
           jobname=job1, 
           livedate__gte=datetime.date.today()
       ).order_by('livedate')

答案 1 :(得分:0)

视图看起来应该是这样的。 请记住,filter()方法将返回一个查询集,而不仅仅是一个对象。 如果您只想要一个对象,则必须使用get()而不是filter()

import datetime

def yourview(request):
    jobs = Job.objects.filter(jobname="job3", livedate__gte=datetime.date.today())
    context = {'jobs': jobs}
    #render method could differ depending on what version of django you're running
    return render_to_response('template/mytemplate.html', context, context_instance=RequestContext(request))