2010-12-20 143 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。添加了空文件,重新启动服务器,一切正常。