在我的Django html模板中,我使用"2015-01-01T00:00:00Z“格式的干草堆获得我的SOLR facet_date结果。如何在模板中以"01/01/2015“格式解析它?我的模板是
{{ facets.dates.created.start }}
什么“日期:”选项我应该添加到我的模板?谢谢!
发布于 2015-11-30 20:40:36
如果您的日期是一个ISO字符串而不是Python datetime.datetime,那么我猜您必须在视图上解析它,或者编写一个自定义过滤器:
# yourapp/templatetags/parse_iso.py
from django.template import Library
import datetime
register = Library()
@register.filter(expects_localtime=True)
def parse_iso(value):
return datetime.datetime.strptime(value, "%Y-%m-%dT%H:%M:%SZ")
然后在模板处:
{% load parse_iso %}
{{ value|parse_iso|date:'d/m/Y'}}
编辑
得到了这个错误
Exception Type: TemplateSyntaxError at /search/ Exception Value: 'parse_iso' is not a valid tag library: Template library parse_iso not found
确保你遵循文档中规定的代码布局
yourapp/
__init__.py
models.py
...
templatetags/
__init__.py
parse_iso.py
views.py
您的国家可以使用m/d/Y
(01/01/2015
是模棱两可的,我建议使用一个像31/01/2015
这样的例子,这样可以清楚地知道第一个数字代表的是日还是月)。
发布于 2015-11-30 20:42:38
如果{{ facets.dates.created.start }}
是datetime对象,则可以使用
{{ facets.dates.created.start|date:"SHORT_DATE_FORMAT" }}
如果您正在提供字符串,则可以创建一个模板筛选器,将字符串转换为datetime对象并应用date
筛选器。
@register.filter
def stringformat(value, args):
return datetime.strptime(value, args)
在模板中:
{{ facets.dates.created.start|stringformat:"%Y-%m-%dT%H:%M:%SZ"|date:"SHORT_DATE_FORMAT" }}
发布于 2015-11-30 20:33:01
为此,您可以使用Django模板标记。您需要使用{{my_date|date:“some_format”},它以"my_date“作为参数(应该是date对象)来"date”标记,然后根据给定的格式对其进行格式化。
{{facets.dates.created.start|date:"d/m/Y"}}
https://stackoverflow.com/questions/34012527
复制相似问题