如何在交互式shell中导入自定义模板标记或过滤器以查看一切是否正常工作?
我有两台机器表现不同,我不知道如何进行调试。
在生产机器上我无法加载模板过滤器,我收到错误“找不到模板库”。 在本地机器上一切正常。
答案 0 :(得分:6)
导入如下过滤器:
from django.template import defaultfilters as filters
filters.date( date.today() )
而是应该导入自定义过滤器的默认过滤器:
from myApp.templatetags import poll_extras
poll_extras.cut( 'ello' )
在生产服务器中仔细检查已安装app的设置。
答案 1 :(得分:3)
如果您担心拼写错误,丢失__init__.py
个问题或屏蔽ImportError
,则可以导入该功能。假设有以下结构:
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'