我有一个模板标签,如下所示,
@register.filter
def get_runtime(date_start=None, date_end=None):
fmt = '%Y-%m-%dT%H:%M:%S'
if date_start and date_end is not None:
date_start = datetime.strptime(date_start, fmt)
date_end = datetime.strptime(date_end, fmt)
return date_end - date_start
else:
return None
我将其传递到我的网站之一,如下所示,
<b>Run Time (min): </b> {{ value.date_start|get_runtime:value.date_end }}<br>
但它显示错误“strptime()只需要2个参数(给定1个)” 请帮帮我。提前致谢
答案 0 :(得分:0)
如果value
是模型且date_start
,date_end
是DateTimeFields,则可以更轻松地为模型添加方法
def runtime(self):
if self.date_start and self.date_end:
return self.date_end - self.date_start
并在模板中使用它:
{{ value.runtime }}
对于您的解决方案,最好使用标记而不是过滤器,因为您不会修改值并计算其他内容。函数默认返回None
。所以它看起来像:
@register.simple_tag
def get_runtime(date_start, date_end):
if date_start and date_end:
return date_end - date_start
模板中的:
{% get_runtime value.date_start value.date_end %}