django日期过滤器gte和lte

ApP*_*PeL 13 django django-views django-filters

我需要在一组参数中找到数据我正在构建一个小型预订系统,让用户可以看到哪些车辆可以预订他们的小旅行团.

系统具有先前已输入或由客户先前制作的预订.

如果预订的pickup_date = 2011-03-01dropoff_date = 2011-03-15我运行一个查询使用pickup=2011-03-09,并dropoff=2011-03-14在我的看法如下,它不返回任何结果,看是否在该时段内的预订成功.

views.py

def dates(request, template_name='groups/_dates.html'):
    pickup=request.GET.get('pickup','None');
    dropoff=request.GET.get('dropoff','None');
    order = Order.objects.filter(pick_up__lte=pickup).filter(drop_off__gte=dropoff)

    context = {'order':order,}

    return render_to_response(template_name,context,
        context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

有关如何做到这一点的任何建议?或者我应该考虑另一种运行此查询的方法?

Mar*_*sar 20

是否可以将原始字符串传递给查询集的格式不正确,尝试将字符串转换为datetime对象.

稍后您可以尝试使用范围查找在某些数据库引擎上更高效,并且更易于阅读和编码.

from django.db.models import Q

start_date = datetime.date(2005, 1, 1)
end_date = datetime.date(2005, 3, 31)
orders = Order.objects.filter(drop_off__gte=start_date, pick_up__lte=end_date)
# Or maybe better
orders = Order.objects.filter(Q(drop_off__gte=start_date), Q(pick_up__lte=end_date))
Run Code Online (Sandbox Code Playgroud)