Editar: Si está utilizando un checkout SVN reciente de Django (post 1.3), vea la respuesta de Pastylegs. De lo contrario, esto es lo que puede hacer:
Uso repoze.timeago para este fin. El código es bastante sencillo, así que puedes personalizarlo si es necesario.
Aquí hay un filtro personalizado de Django llamado elapsed
que creé que usa repoze.timeago.
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
Genial, no sabía nada de esto. Esto fue agregado después de Django 1.3; Tendrás que obtenerlo del tronco SVN. –
Impresionante, me gusta más Django;) – starcorn