Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在django sphinx中按日期过滤?_Django_Sphinx - Fatal编程技术网

如何在django sphinx中按日期过滤?

如何在django sphinx中按日期过滤?,django,sphinx,Django,Sphinx,我试图按Django sphinx返回的查询集的日期进行过滤,但我总是让查询集未过滤 以下是代码片段: date_start = form.cleaned_data['date_start'] date_end = form.cleaned_data['date_end'] results = Story.search.query(query).filter(date__range=(date_start, date_end)) 证据: results = S

我试图按Django sphinx返回的查询集的日期进行过滤,但我总是让查询集未过滤

以下是代码片段:

date_start  = form.cleaned_data['date_start']
date_end    = form.cleaned_data['date_end']
            
results = Story.search.query(query).filter(date__range=(date_start, date_end))
证据:

results = Story.search.query(query)

import sys
print>>sys.stderr, "Results before date filtering:"
for i in results:
    print>>sys.stderr, i.date

print>>sys.stderr, "Date start"
print>>sys.stderr, date_start
print>>sys.stderr, date_start.__class__
    
print>>sys.stderr, "Date end"
print>>sys.stderr, date_end
print>>sys.stderr, date_end.__class__

fresults = results.filter(date__range=(date_start,date_end))

print>>sys.stderr, "Results after date filtering:"
for j in fresults:          
    print>>sys.stderr, j.date
    print>>sys.stderr, date_start<=j.date and "OK" or "Error"
    print>>sys.stderr, j.date<=date_end and "OK" or "Error"
输出:

Results before date filtering:
2011-09-16 01:46:10

Date start
2011-09-08 00:00:00
<type 'datetime.datetime'>

Date end
2011-09-09 00:00:00
<type 'datetime.datetime'>

Results after date filtering:
2011-09-16 01:46:10
OK
Error

如您所见,过滤后仍返回日期为9月16日的条目,这是9月9日日期结束变量的较晚日期。

您能证明您有此范围内的数据吗?可能包括一些您确定在数据库中的示例行。由于您省略了查询位,因此很容易相信查询首先没有行。是的,我完全确定在该范围内有示例行。事实上,如果我得到数据库故事的日期,然后用这个日期过滤,也不起作用。为了让我们更容易理解,您能否将示例数据缩减到最少的行,以提供必要的证据?并且——也许——突出显示数据转储,以便非常清楚您的原始代码出了什么问题。您需要证明原始代码中的查询参数确实提供了至少一行。如果它提供了更多,你可以编辑你的问题之外的额外内容。你能给我们看看你的sphinx.conf吗?