Django - 无法在模板中加载自定义过滤器

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'不是注册的标记库.

我的错误在哪里?

Umu*_*kun 7

我意识到我需要重新启动Web服务器才能加载自定义模板过滤器.这是这种情况下的解决方案.