使用 templatetags 方法的 Django 自定义过滤器不起作用!异常值为:无效过滤器:'dict_'

Posted

技术标签:

【中文标题】使用 templatetags 方法的 Django 自定义过滤器不起作用!异常值为:无效过滤器:\'dict_\'【英文标题】:Django Custom Filters using templatetags method isn't working! Exception Value is : Invalid filter: 'dict_'使用 templatetags 方法的 Django 自定义过滤器不起作用!异常值为:无效过滤器:'dict_' 【发布时间】:2016-03-03 05:20:25 【问题描述】:

我的 Django 应用程序具有以下结构。

实际上是发送“dict-data”以渲染到模板文件,其中 dict 中的字段键之一以“_id”开头。 Django 模板无法检索下划线键值,因此使用自定义过滤器来实现这一点。 [使用templatetags文件夹中的这个文件https://github.com/halfnibble/django-underscore-filters/blob/master/underscore_filters/templatetags/underscore_tags.py]

.
├── configure.py
├── manage.py
├── static
└── app_name
    ├── abc
    │   ├── admin.py
    │   ├── apps.py
    │   ├── forms.py
    │   ├── __init__.py
    │   ├── models.py
    │   ├── tests.py
    │   └── views.py
    ├── xyz
    │   ├── admin.py
    │   ├── forms.py
    │   ├── __init__.py
    │   ├── models.py
    │   ├── tests.py
    │   └── views.py
    ├── __init__.py
    ├── settings.py
    ├── templates
    ├── templatetags
    │   ├── __init__.py
    │   └── underscore_filters.py
    ├── urls.py
    ├── utils.py
    ├── views.py
    └── wsgi.py

在模板文件中作为 mycustomdict|dict_:'_id' 使用时,出现错误。 [使用 % load underscore_filters 加载自定义过滤器]

Django Version: 1.8.7
Exception Type: TemplateSyntaxError
Exception Value:    
Invalid filter: 'dict_'
Exception Location: /home/satish/env/django/lib/python3.4/site-packages/django/template/base.py in find_filter, line 430
Python Executable:  /home/satish/env/django/bin/python

我认为 templatetags 文件夹中的过滤器没有加载。解决这个问题的任何帮助都会非常棒!

提前致谢!!

【问题讨论】:

【参考方案1】:

templatetags 目录需要在应用内,并且该应用需要添加到 INSTALLED_APPS。

【讨论】:

嗨,Daniel,实际上,templatetags 仅放置在 xyz 文件夹中,正在检查所有可能性并保存在项目文件夹中。 [在 INSTALLED_APPS 中也添加了。] 它甚至不能那样工作!!了解过滤器未加载原因的步骤是什么?

以上是关于使用 templatetags 方法的 Django 自定义过滤器不起作用!异常值为:无效过滤器:'dict_'的主要内容,如果未能解决你的问题,请参考以下文章

djang2.1大战教育平台之交互篇章

Django 1.10.1 'my_templatetag' 不是注册标签库。必须是以下之一:

没有名为“django.contrib.staticfiles.templatetags”的模块

创建djang+vue项目

Django框架-- Djang与Ajax

python Django query_transform templatetag