Django: невозможно загрузить теги шаблона - PullRequest
24 голосов
/ 20 декабря 2010

Я использую 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

Когда я пытаюсь импортировать мой модуль в оболочке, я также не могу импортировать его:

>>> 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 ]

86 голосов
/ 31 декабря 2012

Примечание для тех, кто сталкивается с этим: вам нужно перезапустить сервер разработки, чтобы зарегистрировать новые файлы в вашем приложении django.

15 голосов
/ 20 декабря 2010

Моя проблема была из-за опечатки.Я назвал файл в templatetags __init.py__, но он должен был называться __init__.py.

7 голосов
/ 30 декабря 2013

У меня была такая же проблема.Проблема заключалась в том, что я использовал общий каталог templatetags, а в нем не было __init__.py.Добавил этот пустой файл, перезагрузил сервер, и все было хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...