【问题标题】:Django template filter keeps giving "unsupported operand type"Django模板过滤器不断给出“不支持的操作数类型”
【发布时间】: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

【问题讨论】:

    标签: python django datetime django-templates django-template-filters


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 2021-09-23
      • 2016-09-03
      相关资源
      最近更新 更多