【发布时间】:2011-05-28 01:01:17
【问题描述】:
我正在使用 Django 1.2.1,但在尝试加载我的 模板标签:
{% 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中定义。
nate@nate-desktop:~/work/django-projects/myproject$ ls myapp/templatetags/
mytags.py __init.py__
nate@nate-desktop:~/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
这是否意味着我的路径或设置有问题?有什么想法吗?
【问题讨论】:
-
您在
myapp目录中也有__init__.py吗? -
好问题。是的,我愿意:nate@nate-desktop:~/work/django-projects/myproject$ ls myapp/ init.py models.py templatetags views.py init。 pyc models.pyc tests.py views.pyc
-
我很难从“ls”输入输出。下划线被转换为粗体文本。它应该显示双下划线 init.py 双下划线。