3

如何在交互式 shell 中导入自定义模板标签或过滤器以查看一切是否正常?

我有两台机器的行为不同,我不知道如何进行一些调试。

在生产机器上我无法加载模板过滤器,我收到错误“找不到模板库”。在本地机器上一切正常。

4

2 回答 2

6

像这样导入过滤器:

from django.template import defaultfilters as filters
filters.date( date.today() )

相反,您应该导入自定义过滤器的默认过滤器:

from myApp.templatetags import poll_extras
poll_extras.cut( 'ello' )

仔细检查生产服务器中安装的应用程序的设置。

于 2012-08-20T14:10:22.773 回答
3

如果您担心拼写错误、遗漏__init__.py问题或被屏蔽ImportError的 s,您可以只导入该函数。假设以下结构:

foo
├── bar
│   ├── __init__.py
│   ├── models.py
│   ├── static
│   │   └── ..
│   ├── templates
│   │   └── ..
│   ├── templatetags
│   │   ├── __init__.py
│   │   └── baz.py
│   ├── views.py
├── manage.py
└── foo
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

以及以下内容baz.py

from django import template

register = template.Library()

@register.filter
def capitalize(value):
    return value.capitalize()

你会跑

>>> from bar.templatetags import baz
>>> print baz.capitalize('test')
'test'
于 2012-08-20T14:10:56.047 回答