我有从前端用户输入的搜索选项。
template = Template('''<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Streaming Example</title>
{{ js_resources }}
{{ css_resources }}
</head>
<body>
{{ plot_div }}
{{ plot_script }}
</body>
</html>
''')
@app.route("/")
def simple():
streaming=True
source = AjaxDataSource(data_url="http://localhost:5000/data",
polling_interval=1000, mode='append')
fig = figure(title="Streaming Example")
fig.line( 'x', 'y', source=source)
js_resources = INLINE.render_js()
css_resources = INLINE.render_css()
script, div = components(fig, INLINE)
html = template.render(
plot_script=script,
plot_div=div,
js_resources=js_resources,
css_resources=css_resources
)
return encode_utf8(html)
然后我使用DB中的列名映射这些值。
search = {"Date":"2016-02-07","Status":"pass" }
现在我在DB中有DateTimeField。当我使用过滤器时,我正在尝试下面的一个:
query_to_field_mapping = {"Date": "date","Status": "result"}
query = {query_to_field_mapping[key]: value for key, value in search.items()}
这里我试图根据日期字段&amp;想要获得过滤记录。我尝试了同样没有成功。我怎么办?
任何帮助都会很棒!!!
我尝试了SO中的其他问题:How can I filter a date of a DateTimeField in Django?
我无法找到解决问题的方法,因为我们正在逐一传递列名。但是现在我正以字典传递。
答案 0 :(得分:1)
你的方法是正确的。它不起作用的原因是因为您通过提供datetime
字符串来过滤date
字段的相等性,因此2016-02-07
日期(您的查询参数)不等于{{1 (DB中可能的值)。
要克服这种情况,请使用您自己问题链接中的一种字段查找功能。作为一个具体的例子,让我们使用2016-02-07T12:32:22
字段查找,如下所示:
contains
因此,在将query_to_field_mapping = {"Date": "date__contains","Status": "result"}
传递给query_to_field_mapping
时,它会在您需要的日期时间内查找日期。