我知道那裏有timesince
過濾器。Django創建模板過濾器好時光
但我想要的東西,返回此:
- 只需幾秒鐘前
- X分鐘前
- X小時前
- 在$ DAY_NAME
- X星期前
- X幾個月前
例子:
- 只需幾秒鐘前
- 38分鐘前
- 3小時前
- 昨天
- 上 週四
- 1個星期前
- 7個月前
How我可以執行這樣的事嗎?
我知道那裏有timesince
過濾器。Django創建模板過濾器好時光
但我想要的東西,返回此:
例子:
How我可以執行這樣的事嗎?
不知道它蜱所有的箱子,但有一個在django.contrib.humanize模板標籤標籤naturaltime應該這樣做:
https://docs.djangoproject.com/en/dev/ref/contrib/humanize/#naturaltime
settings.py
INSTALLED_APPS = {
...
'django.contrib.humanize',
}
template.html
{% load humanize %}
{{ model.timefield|naturaltime }}
編輯:如果您正在使用最近的Django SVN簽出(post 1.3),請參閱Pastylegs的回答。否則,您可以執行以下操作:
爲此,我使用repoze.timeago。代碼非常簡單,所以你可以根據需要定製它。
這是我創建的使用repoze.timeago的Django自定義過濾器0123'。
import datetime
from django import template
import repoze.timeago
register = template.Library()
# If you aren't using UTC time everywhere, this line can be used
# to customize repoze.timeago:
repoze.timeago._NOW = datetime.datetime.now
@register.filter(name='elapsed')
def elapsed(timestamp):
"""
This filter accepts a datetime and computes an elapsed time from "now".
The elapsed time is displayed as a "humanized" string.
Examples:
1 minute ago
5 minutes ago
1 hour ago
10 hours ago
1 day ago
7 days ago
"""
return repoze.timeago.get_elapsed(timestamp)
elapsed.is_safe = True
很酷,我不知道這件事。這是在Django 1.3之後添加的;你必須從SVN中繼獲取它。 – 2011-06-01 14:01:39
太棒了,我越來越喜歡Django;) – starcorn 2012-04-27 14:52:31