2014-10-07 52 views
1

我正在嘗試編寫一個簡單的django Custom template tags and filters以用模板上的行空格替換html中斷(< b r />)。django寫我的第一個自定義模板標記和過濾器

我跟着django文檔,但我得到以下錯誤,我不知道如何解決。

我的錯誤是:

x_templates_extra' is not a valid tag library: Template library x_templates_extra not found, tried django.templatetags.x_templates_extra,django.contrib.staticfiles.templatetags.x_templates_extra,django.contrib.admin.templatetags.x_templates_extra,django.contrib.flatpages.templatetags.x_templates_extra,rosetta.templatetags.x_templates_extra,templatetag_handlebars.templatetags.x_templates_extra,globalx.common.templatetags.x_templates_extra,rollyourown.seo.templatetags.x_templates_extra,debug_toolbar.templatetags.x_templates_extra 

這裏是我做了什麼:

1. created a templatetags directory, at the same level as models.py, views.py, etc 

2. created a __init__.py file inside the templatetags directory to ensure the directory is treated as a Python package 

3. created a file inside the templatetags directory called x_templates_extra.py 

4. added the load tag to the template: {% load x_templates_extra %} 

5. added the tag to the template: {{ x_detail.x_details_institution_name|safe|replace:"<br />"|striptags|truncatechars:popover_string_length_20 }} 

6. Added the following code to the file x_templates_extra.py: 

from django import template 

register = template.Library() 

def replace(value, arg): 
    """Replaces all values of arg from the given string with a space.""" 
    return value.replace(arg, ' ') 

問:

的文檔指出:因此,靠近頂部你的模塊,把以下內容:

from django import template 

register = template.Library() 

我已將名爲x_templates_extra.py的我的文件中的寄存器行導入&。那是對的嗎?

另外我不確定在INSTALLED_APPS中放入什麼來使負載工作。

嘗試了很多事情,但我現在輪到我了,所以我需要幫助。

謝謝。

+0

你是否發現你的包/目錄在模板標籤django列表中試過? – karthikr 2014-10-08 00:46:41

+0

沒錯,您必須將應用程序名稱添加到'INSTALED_APPS'元組! – slackmart 2014-10-08 00:58:36

回答

1

終於搞定了。

向安裝的應用程序添加正確的應用程序名稱是eissue。

0

如果你的應用程序名稱是foo和你的標籤文件夾名是goo然後settings.py你應該有:

INSTALLED_APPS = [ 
'foo', 
'foo.goo' 

]

兩個你app和你tag folder這是你的應用程序包 Django的下項目需要在那裏。

-> foo 
    ---> models.py 
    ---> views.py 
    ---> goo 
     -----> __init__.py 
     -----> app_filters.py 
相關問題