Umu*_*kun 5 python django django-templates
我想将delta时间显示为'x天前'.我试过Django的timesince过滤器,但它返回'x天,x分钟'.我想只显示几天.我尝试了人性化的自然时间,但我猜它只适用于DateTimeField.我正在使用DateField.
我有这样的自定义过滤器(app_filters.py);
from django import template
from datetime import date
register = template.Library()
@register.filter(name='days_since')
def days_since(value):
delta = value - date.today()
if delta.days == 0:
return 'Today'
elif delta.days < 1:
return '{} days ago'.format(abs(delta.days))
elif delta.days == 1:
return 'Tomorrow'
elif delta.days > 1:
return 'In {} days'.format(delta.days)
Run Code Online (Sandbox Code Playgroud)
这是应用程序文件夹;
app/
models.py
views.py
...
templatetags/
__init__.py
app_filters.py
Run Code Online (Sandbox Code Playgroud)
我在settings.py中将'app'添加到INSTALLED_APPS我试图在这样的模板中使用此过滤器;
{% extends 'app/base.html' %}
{% load app_filters %}
{{ entry.date_updated | days_since }}
Run Code Online (Sandbox Code Playgroud)
然后我收到错误:'app_filters'不是注册的标记库.
我的错误在哪里?
| 归档时间: |
|
| 查看次数: |
2451 次 |
| 最近记录: |