当前位置: 首页 > 面试题库 >

如何在Django模板中使用Humanize显示“ x天前”类型的时间?

暴辰龙
2023-03-14
问题内容

当我这样做时:

{% load humanize %}

{{ video.pub_date|naturaltime|capfirst }}

我懂了 2 days, 19 hours ago

我如何只花2天就没有上班时间。基本上,如果视频是在不到一天前发布的,那么它应该说X个小时前,然后应该像X天之前那样在几天之内算完,然后再数周。我只是不想1分钟5分钟前或2天13分钟前。只是第一部分。

我查看了人性化文档,但找不到所需的文档。


问题答案:

Django有一个内置的模板过滤器
timesince,可提供与上述相同的输出。以下过滤器仅去除逗号后的第二部分:

from datetime import datetime, timedelta
from django import template
from django.utils.timesince import timesince

register = template.Library()

@register.filter
def age(value):
    now = datetime.now()
    try:
        difference = now - value
    except:
        return value

    if difference <= timedelta(minutes=1):
        return 'just now'
    return '%(time)s ago' % {'time': timesince(value).split(', ')[0]}


 类似资料:
  • 问题内容: 我的Django项目中有这些模型: 如何在模板中显示该地方的区域名称?目前我有: 这使: 而且{{ place.area}}只是空白。有人可以帮忙吗? 问题答案:

  • 我正在做一个项目,我需要使用几个DateTime字段,我已经在我的模型中定义了,然后在模板中,我正在使用https://tempusdominus.github.io/bootstrap-4/插件,但是当我提交表单时,有两个问题来吧: 1) :Django说为所有DateTime字段输入有效的日期/时间(2):选择有效选项<代码>[“玉米油”]不是可用选项之一。 以下是我尝试过的: 从: 从: 从

  • 问题内容: 我有一个带有电子邮件属性的表单。 当使用某些验证错误时,Django仍会在输入标签的value属性中呈现先前的值: 我想自己渲染输入标签(在发生错误的情况下添加一些JavaScript代码和错误类)。例如,这是我的模板,而不是{{ form.email }}: 但是,这不会向用户显示错误的值(在此示例中)。 如何在模板中获取字段的值? 问题答案: 这是一项功能请求,已在Django 1

  • 问题内容: 我正在寻找如何在Flask模板中输出当前年份。我知道你可以在Django中使用.,但是有Flask等效项吗?到目前为止,我一直无法找到任何东西。 问题答案: 使用模板上下文处理器将当前日期传递给每个模板,然后呈现其year属性。 render如果大多数模板中不需要它,也可以将其与一起传递。

  • 问题内容: 我想知道如何在模板中获取当前URL。 说我目前的网址是: 如何将其返回到模板? 问题答案: Django 1.9及更高版本: 旧:

  • 我在 PyCharm 2016.1 社区版工作。 以下是一些官方参考资料:https://www.jetbrains.com/help/pycharm/2016.1/debugging-django-templates.html 但是和2016版没有联系。设置不同。如何启用Django模板语法高亮,如果我使用*。html文件?