在django视图中将从solr检索到的日期时间转换为仅几小时和几分钟

时间:2015-10-19 10:26:48

标签: python django solr

我是 python django solr 的新手,我在我的应用程序中正在做的是将结束时间存储为sol 0000-00-00T01:00:00Z。 然后我检索这些数据并将其传递给字典

形式的视图
return render(request, 'searchvenueresults.html',{'query': result['query'],
    'data_set':result['data_set'],
    'data_close':result['data_close'], 
    'exact_found':result['exact_found'], 
    'numFound': result['numFound']
    })

所以我的data_set保持关闭时间,我按如下方式访问它:

{% for data in data_set %} 
    Closes at <span class="time">{{ data.venue_closing_time }} PM</span>
{% endfor %}

当我使用此代码时,它将关闭时间显示为:

Closes at 0002-11-30T01:00:00Z PM

我想要展示的只是:

Closes at 01:00 PM

我试过

{% for data in data_set %} 
Closes at <span class="time">{{ data.venue_closing_time|date:'H:i' }} PM</span>
{% endfor %}

但它显示空白值,不显示任何内容。

请提前帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

date模板过滤器仅在venue_closing_timedatetime对象时才有效。如果你只是传递一个字符串(就像你正在做的那样)那么它将无法工作。在这种情况下,您需要首先解析字符串,例如:

from django.utils.dateparse import parse_datetime

venue_closing_time = parse_datetime(data['venue_closing_time'])

如果您将其传递给模板,那么您的日期过滤器将按预期工作。

如果您使用Solr库,首先将从Solr获取的数据转换为适当的Python表示(例如,pysolr),这将更容易。