2010-12-20 95 views
23

我使用Django 1.2.1,我有試圖加載我 模板標籤的問題:Django的:無法加載模板標籤

{% load mytags %} 

TemplateSyntaxError at /myapp/ 

'mytags' is not a valid tag library: Template library mytags not 
found, tried django.templatetags.mytags 

它在myproject/myapp/templatetags/mytags.py的已定義。

[email protected]:~/work/django-projects/myproject$ ls myapp/templatetags/ 
mytags.py __init.py__ 
[email protected]:~/work/django-projects/myproject$ more 
myapp/templatetags/mytags.py 


from django import template 

register = template.Library() 

@register.simple_tag 
def myclass(request): 
    return request.path 

我加入 'MyApp的' 到INSTALLED_APPS,並更新TEMPLATE_LOADERS(如 每從StackOverflow的建議):

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
    'django.template.loaders.eggs.Loader', 
    'django.template.loaders.app_directories.load_template_source', 
) 

當我開始我看到此警告消息的服務器:

/usr/local/lib/python2.6/dist-packages/django/template/loaders/eggs.py:4: 
UserWarning: Module _mysql was already imported from 
/usr/lib/pymodules/python2.6/_mysql.so, but 
/usr/lib/pymodules/python2.6 is being added to sys.path 

當我嘗試在shell中導入我的模塊時,我也無法導入它:

>>> from django.templatetags import mytags 
Traceback (most recent call last): 
File "<console>", line 1, in <module> 
ImportError: cannot import name mytags 
>>> from myapp.templatetags import mytags 
Traceback (most recent call last): 
File "<console>", line 1, in <module> 
ImportError: No module named templatetags 

這是否意味着我的路徑或設置有問題?有任何想法嗎?

+3

你在'myapp'目錄中是否還有'__init __。py'? – Wolph 2010-12-20 01:55:27

+0

好問題。是的,我這樣做: nate @ nate-desktop:〜/ work/django-projects/myproject $ ls myapp/ __init__.py models.py templatetags views.py __init __。pyc models.pyc tests.py views.pyc – 2010-12-20 02:39:06

+0

我很難輸入'ls'的輸出。下劃線轉換爲粗體文本。它應該顯示雙下劃線init.py雙下劃線。 – 2010-12-20 02:43:39

回答

15

我的問題是由於一個錯字。我在templatetags __init.py__中調用了該文件,但它應該被命名爲__init__.py

85

爲其他遇到此問題的人提示:您需要重新啓動開發服務器以在您的django應用程序中註冊新文件。

+1

解決了我的問題,謝謝! – Symmetric 2013-01-17 04:46:52

+7

井下有20分鐘的時間,但無論如何你已經爲我節省了20多分鐘。謝謝。 – chucksmash 2013-04-07 16:45:08

7

我有同樣的問題。問題是我正在使用共享的templatetags目錄,而其中沒有__init__.py。添加了空文件,重新啓動服務器,一切正常。