我们从Python开源项目中,提取了以下6个代码示例,用于说明如何使用django.template.defaultfilters.timesince()。
def check(request): return { 'hostname': socket.gethostname(), 'ips': ips, 'cpus': psutil.cpu_count(), 'uptime': timesince(datetime.fromtimestamp(psutil.boot_time())), 'memory': { 'total': filesizeformat(psutil.virtual_memory().total), 'available': filesizeformat(psutil.virtual_memory().available), 'used': filesizeformat(psutil.virtual_memory().used), 'free': filesizeformat(psutil.virtual_memory().free), 'percent': psutil.virtual_memory().percent }, 'swap': { 'total': filesizeformat(psutil.swap_memory().total), 'used': filesizeformat(psutil.swap_memory().used), 'free': filesizeformat(psutil.swap_memory().free), 'percent': psutil.swap_memory().percent } }
def test_timesince_or_never_returns_same_output_as_django_date(self): d = datetime.date(year=2014, month=3, day=7) c = django.template.Context({'date': d}) t = django.template.Template('{{ date|timesince_or_never }}') self.assertEqual(defaultfilters.timesince(d), t.render(c))
def test_timesince_or_never_returns_same_output_as_django_datetime(self): now = datetime.datetime.now() c = django.template.Context({'date': now}) t = django.template.Template('{{ date|timesince_or_never }}') self.assertEqual(defaultfilters.timesince(now), t.render(c))
def test_broken_filter(self): class MyTableBrokenFilter(MyTable): value = tables.Column('value', filters=(defaultfilters.timesince,)) value = "not_a_date" data = TEST_DATA[0] data.value = value table = MyTableBrokenFilter(self.request, [data]) resp = http.HttpResponse(table.render()) self.assertContains(resp, value)
def timesince(value, now=None): from django.template.defaultfilters import timesince if now is None: now = timezone.now() if not value: return _('never') if value < (now - timedelta(days=5)): return value.date() value = (' '.join(timesince(value, now).split(' ')[0:2])).strip(',') if value == _('0 minutes'): return _('just now') if value == _('1 day'): return _('yesterday') return value + _(' ago')
def naturaltime(value): """ For date and time values shows how many seconds, minutes or hours ago compared to current timestamp returns representing string. """ if not isinstance(value, date): # datetime is a subclass of date return value now = datetime.now(utc if is_aware(value) else None) if value < now: delta = now - value if delta.days != 0: return pgettext( 'naturaltime', '%(delta)s ago' ) % {'delta': defaultfilters.timesince(value, now)} elif delta.seconds == 0: return _('now') elif delta.seconds < 60: return ungettext( # Translators: \\u00a0 is non-breaking space 'a second ago', '%(count)s\u00a0seconds ago', delta.seconds ) % {'count': delta.seconds} elif delta.seconds // 60 < 60: count = delta.seconds // 60 return ungettext( # Translators: \\u00a0 is non-breaking space 'a minute ago', '%(count)s\u00a0minutes ago', count ) % {'count': count} else: count = delta.seconds // 60 // 60 return ungettext( # Translators: \\u00a0 is non-breaking space 'an hour ago', '%(count)s\u00a0hours ago', count ) % {'count': count} else: delta = value - now if delta.days != 0: return pgettext( 'naturaltime', '%(delta)s from now' ) % {'delta': defaultfilters.timeuntil(value, now)} elif delta.seconds == 0: return _('now') elif delta.seconds < 60: return ungettext( # Translators: \\u00a0 is non-breaking space 'a second from now', '%(count)s\u00a0seconds from now', delta.seconds ) % {'count': delta.seconds} elif delta.seconds // 60 < 60: count = delta.seconds // 60 return ungettext( # Translators: \\u00a0 is non-breaking space 'a minute from now', '%(count)s\u00a0minutes from now', count ) % {'count': count} else: count = delta.seconds // 60 // 60 return ungettext( # Translators: \\u00a0 is non-breaking space 'an hour from now', '%(count)s\u00a0hours from now', count ) % {'count': count}