【问题标题】:Remove trailing data from django timesince -- template equivalent从 django timesince 中删除尾随数据——模板等效
【发布时间】:2017-05-17 05:26:32
【问题描述】:

相当于这个的Django模板是什么?:

timesince(value).split(", ")[0]

我有一个不能使用模板标签的用例。在我的模板标签中,我会做这样的事情:

@register.filter
def custom_timesince(value):
    return timesince(value).split(", ")[0]

如果不使用模板标签,我将如何在我的 Django HTML 模板中执行此操作?我在 django 模板中的变量是:

{{datetime_obj}}

编辑: 如果可能的话,我想复制以下功能: Remove trailing data from Django timesince

【问题讨论】:

    标签: python django datetime


    【解决方案1】:
    1. 使用timesince 模板过滤器代替模板标签。像这样:

      {{ datetime_obj|timesince:comparison_date }}
      

      注意,comparison_date 是可选的。

    2. 您还可以使用humanize 内置库的naturaltime 模板过滤器。像这样:

      {{ datetime_obj|naturaltime }}
      

      如果您选择后者,请不要忘记将django.contrib.humanize 添加到您的INSTALLED_APPS 设置中,并将{% load humanize %} 放在您要使用naturaltime 的模板顶部。

    【讨论】:

    • 感谢您的回复。如果可能,我想复制以下功能:stackoverflow.com/questions/43126257/…
    • 最好和更易读的方法是写你自己的template filter,就像你发布的问题中的答案一样。请注意,它不是模板标签。这是一个模板过滤器。它只不过是一个可以在任何地方重复使用的函数。
    猜你喜欢
    • 2017-03-01
    • 2011-06-05
    • 2019-09-18
    • 1970-01-01
    • 2018-03-04
    • 2012-07-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多