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】:

您无法在 datetimedate 对象之间获得增量。您必须从 datetime 对象中提取日期:

delta = value.date() - date.today()

【讨论】:

以上是关于Django模板过滤器不断给出“不支持的操作数类型”的主要内容,如果未能解决你的问题,请参考以下文章

类型错误:+ 不支持的操作数类型:“int”和“元素”

Python TypeError 不支持 % 的操作数类型:'file' 和 'unicode'

TypeError:不支持的操作数类型|:'bool'和'Q'[关闭]

代码错误Python:TypeError:/:'set'和'int'不支持的操作数类型

08 Django 模板进阶

Django模板进阶007