Python 在django模板中自定义更新的| timesince
我有一个django模板,它显示上次在数据库中更新元素的时间,如下所示:Python 在django模板中自定义更新的| timesince,python,html,django,Python,Html,Django,我有一个django模板,它显示上次在数据库中更新元素的时间,如下所示: <small>updated {{ updated|timesince }} ago</small> 此处更新了,是一个上下文变量集,如下所示: if element.updated != element.uploaded: is_updated = True 然而,它总是显示“X分钟前更新的”,即使元素还没有更新。我可能做错了什么 元素的模型: title = models
<small>updated {{ updated|timesince }} ago</small>
此处更新了,
是一个上下文变量集,如下所示:
if element.updated != element.uploaded:
is_updated = True
然而,它总是显示“X分钟前更新的”,即使元素还没有更新。我可能做错了什么
元素的模型:
title = models.CharField(max_length=120)
identifier = models.SlugField(blank=True, null=True)
category = models.CharField(max_length=120, default="uncategorized")
description_short = models.CharField(max_length=300, default="none")
description = models.TextField(default="none")
uploaded = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
time = models.IntegerField()
即使一个实例只创建了一次并且再也没有接触过,两个
auto\u add
和auto\u add\u now
DateTimeFields
也可以保留稍微不同的时间戳。如果你在外壳中检查它,你会看到类似的东西:
>>> element.uploaded
datetime.datetime(2018, 1, 4, 14, 7, 37, 542192, tzinfo=<UTC>)
>>> element.updated
datetime.datetime(2018, 1, 4, 14, 7, 37, 542213, tzinfo=<UTC>)
timesince
不支持一分钟以下的时间增量。发件人:
分钟是使用的最小单位,对于将来相对于比较点的任何日期,都将返回“0分钟”
您所能做的就是将额外的信息输入到上下文中:
# view
recent = (element.updated - element.uploaded).seconds < 60
# template
{% if recent %}
<small>updated just now </small>
{% else %}
<small>updated {{ updated|timesince }} ago</small>
{% endif %}
#查看
最近=(element.updated-element.uploaded)。秒<60
#模板
{%if最近%}
刚刚更新
{%else%}
更新{{更新|时间自}年前
{%endif%}
这适用于更新后的零件。。。但当上次更新到现在的时间少于1分钟时,它仍然显示“0分钟前更新”。。。我该怎么做呢?@BRHSM我在回答中添加了一些建议。
if (element.updated - element.uploaded).microseconds > 500:
is_updated = True
# view
recent = (element.updated - element.uploaded).seconds < 60
# template
{% if recent %}
<small>updated just now </small>
{% else %}
<small>updated {{ updated|timesince }} ago</small>
{% endif %}