我继承了一个 Django 应用程序,我需要使用自定义模板过滤器对其进行修改。我对 Django 完全陌生,对此我感到非常困惑。我以为我完全按照说明进行了操作,并且还遵循了其他帖子中有关该主题的所有建议,但是当我在模板中包含以下行时仍然出现错误:
{% load mlgb_custom_filters %}
我的目录结构如下:
mysite (i.e. the project)
__init__.py
mlgb/ (i.e. the app)
__init__.py
templatetags/
__init__.py
mlgb_custom_filters.py
mlgb_custom_filters.py 的代码如下:
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter(name='fix_dashes')
@stringfilter
def fix_dashes( value ):
return value.replace( '--', 'DASH' )
if __name__ == "__main__":
testvar = fix_dashes( "ouch -- ow -- I hate django" )
print testvar
如您所见,我添加了一个 'name = main' 部分,让我在独立模式下运行它,只是为了检查该特定文件中没有错误,并且在独立模式下运行时很好。
根据其他人的建议,我也尝试将其导入另一个文件,只是为了查看是否存在导入错误,再一次,如果我将其添加到 settings.py 的末尾就可以了(在使用 dev服务器):
尝试:导入 mlgb.templatetags.mlgb_custom_filters 例外,exc: print 'error importing mlgb_custom_filters' print exc
此外,settings.py 中的 INSTALLED_APPS 包含“mysite.mlgb”行,我还尝试在其中放置“mlgb”而不是“mysite.mlgb”,正如另一个人所建议的那样。每次进行更改时,我都会重新启动开发服务器。
到目前为止,我想我已经尝试了我在网上找到的每一个建议。有没有人有任何新的想法?我继承了一个目录结构,其中模板目录与应用程序不在同一结构内,即它不在 mysite 下,这可能与此有关吗?在这里刮桶寻找想法!我希望有人能帮帮忙。