Django自定义模板过滤器无法正常工作

Lov*_*eTW 1 django

我有一个错误: 'run_target'不是有效的标记库:找不到模板库run_target,尝试了django.templatetags.run_target

我不知道为什么它不能工作,即使我添加'db.templatefilters'它也无法正常工作......任何人都可以帮助我吗?谢谢 :)

以下是我的文件结构:

db/
    models.py
    templatefilters/
        __init__.py
        run_target.py
templates/
    run.html
Run Code Online (Sandbox Code Playgroud)

run_target.py

from django import template
register = template.Library()

@register.simple_tag
def dictKeyLookup(the_dict, key):
       return the_dict[key]
Run Code Online (Sandbox Code Playgroud)

run.html

{% extends "index.html" %}
**{% load run_target %}**
{% block content %}
<div style="margin-left:150px; margin-top:10px">
<a href="/home">Home</a> >> <b>run</b>
</div>
<form name="form" method="post">
<br>
<input type="submit" value="Delete" style="margin-left:149px; width:80px; height:30px">
<table border="1"; style="margin-left:150px; border-collapse:collapse;margin-top:10px"; cellpadding="4" borderColor=black>

{% for run in run_list %}
    <tr>
    <td>{% dictKeyLookup target_dict run.id %}</td>
    </tr>
{% endfor %}
</table>
</form>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

Dom*_*ger 9

首先要做的是:在进行更改后是否重新启动了服务器?这是微不足道的,但大多数人因此而陷入困境.


db在你的INSTALLED_APPS设置吗?

如果是这样,那么看起来你缺少的另外两件事是:

  • __init__.py你的文件db夹本身(你有一个在你的templatefilters目录,而不是它的父目录)
  • templatefilters应调用该文件夹templatetags(请参阅文档的代码布局部分).

顺便说一句,db是不是一个应用程序一个很好听的名字-把它的东西,更加紧密地确定什么它.

  • 并且不要忘记重新启动服务器...似乎微不足道,但那是我的问题 (12认同)