如何在交互式 shell 中导入自定义模板标签或过滤器以查看一切是否正常?
我有两台机器的行为不同,我不知道如何进行一些调试。
在生产机器上我无法加载模板过滤器,我收到错误“找不到模板库”。在本地机器上一切正常。
如何在交互式 shell 中导入自定义模板标签或过滤器以查看一切是否正常?
我有两台机器的行为不同,我不知道如何进行一些调试。
在生产机器上我无法加载模板过滤器,我收到错误“找不到模板库”。在本地机器上一切正常。
像这样导入过滤器:
from django.template import defaultfilters as filters
filters.date( date.today() )
相反,您应该导入自定义过滤器的默认过滤器:
from myApp.templatetags import poll_extras
poll_extras.cut( 'ello' )
仔细检查生产服务器中安装的应用程序的设置。
如果您担心拼写错误、遗漏__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'