【问题标题】:Django: Unable to load template tagsDjango:无法加载模板标签
【发布时间】: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 双下划线。

标签: django templates tags


【解决方案1】:

给遇到此问题的其他人的注意事项:您需要重新启动开发服务器才能在 django 应用中注册新文件。

【讨论】:

  • 好吧,还有 20 分钟的时间,但无论如何,你已经为我节省了 20 分钟。谢谢。
【解决方案2】:

我的问题是由于拼写错误。我在模板标签__init.py__ 中调用了该文件,但它应该被命名为__init__.py

【讨论】:

    【解决方案3】:

    我有同样的问题。问题是我使用了一个共享的templatetags 目录,并且其中没有__init__.py。添加空文件,重启服务器,一切正常。

    【讨论】:

      猜你喜欢
      • 2012-01-26
      • 1970-01-01
      • 2015-11-10
      • 2021-04-08
      • 2010-11-15
      • 2013-04-22
      • 2011-12-11
      • 2016-02-25
      • 1970-01-01
      相关资源
      最近更新 更多