【发布时间】:2018-03-15 05:18:28
【问题描述】:
我一直在尝试在 Django 中创建这个自定义过滤器,但我一辈子都无法让它发挥作用。
在我的模板标签文件夹中,我的模板中有文件__init__.py 和alcextra.py,我首先加载静态文件,然后加载模板标签。我已尝试重置服务器并再次删除和创建文件。
{% load staticfiles %} {% load alcextra %}
然后将其扩展到我的主 html 文件。我已经尝试将它放在主 html 文件中。
在 alcextra.py 中我写过
from django import template
register = template.Library()
@register.filter
def multiply(value, arg):
return value * arg
我尝试过很多不同的@register 版本,比如
@register.filter("multiply", multiply)
@register.filter(name="multiply")
@register.filter()
@register.simple_tag(takes_context=True
并且都返回相同的错误,无效的过滤器:'multiply'。在这一点上,我不知道该做什么或该尝试什么。
编辑:有问题的模板。
<!DOCTYPE html> {% load staticfiles %} {% load alcextra %}
<html>
<head>
<script src="../../static/javascript/jquery-3.2.1.js"></script>
<link rel="stylesheet" href="{% static 'css/alcosearch.css' %}" />
<title>Alcosearch</title>
<meta charset="utf-8" />
</head>
<body>
<div class="pageheader">
<h1>Alcosearch</h1>
<h3>Vinmonopol søk</h2>
</div>
<div>
{% block content %} {% endblock %}
</div>
</body>
</html>
令人讨厌的是,我在另一个项目中尝试过这个并且它成功了。所以我不完全确定我做了什么或没做什么。
编辑 2:
答案是@Alasdair 所说的。我以为我可以在模板中加载过滤器,然后在其他地方使用它,但事实并非如此。
【问题讨论】:
-
请出示您的模板。