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

时间:2010-08-13 07:22:33

标签: django

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

我不知道为什么它不能工作,即使我添加'db.templatefilters'它也无法正常工作... 谁能帮我?谢谢你:))

以下是我的文件结构:

db/
    models.py
    templatefilters/
        __init__.py
        run_target.py
templates/
    run.html

run_target.py

from django import template
register = template.Library()

@register.simple_tag
def dictKeyLookup(the_dict, key):
       return the_dict[key]

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 %}

2 个答案:

答案 0 :(得分:9)

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


db设置中有INSTALLED_APPS吗?

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

  • __init__.py文件夹中的db文件(您的templatefilters目录中有一个,但不是其父目录)
  • templatefilters文件夹应调用templatetags(请参阅文档的Code layout部分。)

顺便提一下,db对于某个应用来说并不是一个非常好的名称 - 称之为更贴近 的内容。

答案 1 :(得分:0)

如果一切都按照文档中的说明完成:

    应用程序文件夹中的
  • init .py,以及templatetags文件夹中的
  • 来自settings.py 的INSTALLED_APPS部分中的
  • 应用名称

如果在服务器运行期间使用新标签/过滤器对模块进行编码,则可以解决重新启动服务器的问题。