2010-08-13 114 views
1

我有一個errror: 「run_target」不是一個有效的標記庫:模板庫run_target沒有找到,django.templatetags.run_target試圖Django的自定義模板過濾器不能正常工作

我不知道爲什麼它不能工作,即使我添加'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 %} 

回答

9

在你INSTALLED_APPS設置db

如果是這樣,那麼它看起來像你錯過了兩個其他的東西:

  • 一個__init__.py文件在您的db文件夾本身(你有一個在你的templatefilters目錄,而不是它的父目錄)
  • templatefilters文件夾應稱爲templatetags(請參閱文檔的Code layout部分)。

順便說一句,db不是一個應用程序一個很好聽的名字 - 把它的東西,更加緊密地標識什麼它。

+0

謝謝你的回答,我不知道文件夾名稱'templatetags'無法更改,再次感謝:) – LoveTW 2010-08-13 08:08:02

+11

並且不要忘記重新啓動服務器...似乎微不足道,但那是我的問題 – 2011-03-04 11:11:32

+0

重新啓動服務器爲我工作。 – 2016-01-08 21:42:35

0

如果一切都如文檔中完成的:

  • 初始化的.py app文件夾內,並在INSTALLED_APPS部分內templatetags文件夾
  • 應用程序的名稱從settings.py

然後,如果您在服務器運行期間使用新標籤/過濾器對模塊進行了編碼,則可以解決重新啓動服務器的問題。