Django模板过滤器不断给出“不支持的操作数类型”
Posted
技术标签:
【中文标题】Django模板过滤器不断给出“不支持的操作数类型”【英文标题】:Django template filter keeps giving "unsupported operand type" 【发布时间】:2015-05-02 14:28:10 【问题描述】:我的模板过滤器不断出现此错误: “ - 的不支持的操作数类型:'datetime.datetime'和'datetime.date'”我已经查看了许多其他处理此错误的答案,但我似乎无法找到问题所在。任何指针都非常感谢。
这是我的模板过滤器:
@register.filter(name='get_due_date_string')
def get_due_date_string(value):
delta = value - date.today()
if delta.days == 0:
return "Today!"
elif delta.days < 1:
return "%s %s ago!" % (abs(delta.days),
("day" if abs(delta.days) == 1 else "days"))
elif delta.days == 1:
return "Tomorrow"
elif delta.days > 1:
return "In %s days" % delta.days
【问题讨论】:
【参考方案1】:您无法在 datetime
和 date
对象之间获得增量。您必须从 datetime
对象中提取日期:
delta = value.date() - date.today()
【讨论】:
以上是关于Django模板过滤器不断给出“不支持的操作数类型”的主要内容,如果未能解决你的问题,请参考以下文章
Python TypeError 不支持 % 的操作数类型:'file' 和 'unicode'
TypeError:不支持的操作数类型|:'bool'和'Q'[关闭]