Django - 如何在任何包含的模板中使用我的自定义过滤器?

Posted

技术标签:

【中文标题】Django - 如何在任何包含的模板中使用我的自定义过滤器?【英文标题】:Django - How to use my custom filters inside any included template? 【发布时间】:2017-05-15 01:13:49 【问题描述】:

我无法在包含的子视图上使用我的过滤器,过滤器在直接编写时有效,但我需要子视图作为包含...

这里是过滤器:

from django import template
from django.template.defaultfilters import stringfilter

register = template.Library()

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

我是这样称呼我的模板的:

% load app_filters %
% include 'view.template.html' %

view.template.html

<h1> 'HELLO WORLD!' | lower </h1>

但问题是它不起作用,除非我必须在 视图中添加 % load app_filters % .template.html 但我的角度应用程序也需要这个模板,所以我不能在模板中写这行。 它是我的 Angular 应用程序的共享模板和 Django 中无角度模板的分离视图。

如何在不修改视图的情况下将自定义过滤器注入包含的视图?可以传递为% include 'view.template.html' with app_filters=app_filters %? 这只是想法。

【问题讨论】:

【参考方案1】:

我现在正在解决:

<div ng-hide="true">
    % load app_filters %
</div>

view.template.html中,所以不会影响模板的角度,并且可以按预期加载django的过滤器。

【讨论】:

以上是关于Django - 如何在任何包含的模板中使用我的自定义过滤器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的自定义小部件模板中包含内置的 django 小部件模板?

如何从 python 代码中调用 django 模板标签?

是否可以使用 django 的自定义模板标签在模板的其他块中插入代码?

在 Django 模板中生成 JSON 的陷阱

`Django 管理`到项目模板中的自定义标题

模板和隐藏输入中的自定义 Django 表单