Пользовательские теги шаблона Django в Google App Engine

Я пытаюсь включить следующий тег в веб-приложение Google App Engine:

http://www.djangosnippets.org/snippets/1357/

Есть ли какая-либо конфигурация этого файла, чтобы он работал с Google App Engine?

Потому что я следовал руководствам по шаблонам Django: http://docs.djangoproject.com/en/dev/howto/custom-template-tags/

и иметь такую структуру:

templatetags/
    __init__.py
    range_template.py

в файле шаблона у меня {%load range_template%}

Но я получаю сообщение об ошибке:

TemplateSyntaxError: «range_template» не является допустимой библиотекой тегов: не удалось загрузить библиотеку шаблонов из django.templatetags.range_template, нет модуля с именем range_template

Другая вещь, которая может быть проблемой, почему это не работает, это файл INSTALL_APPS settings.py. Не уверен, как его настроить.

У меня есть файл settings.py в корне моего приложения, и я включил это:

INSTALLED_APPS = ('теги шаблона')

Мы будем очень признательны за любые советы.


person TimLeung    schedule 21.04.2009    source источник


Ответы (3)


попробуйте сделать следующее:

$ python ./manage.py startapp foo

Добавьте foo к установленным приложениям:

INSTALLED_APPS += ('foo',)

И переместите каталог templatetags в ваше приложение foo. Что-то типа:

./djangoproject
    __init__.py
    settings.py
    urls.py
    etc..
    foo/
        __init__.py
        templatetags/
            __init__.py
            range_template.py

Соглашение Django заключается в том, что код тега шаблона находится в приложениях, в каталогах с именами templatetags (см. документацию). Я предполагаю, что то же самое будет верно и для GAE.

person vezult    schedule 21.04.2009
comment
если я это сделаю, нужно ли мне также настраивать его на рабочем сервере Google App Engine? - person TimLeung; 21.04.2009
comment
Я не уверен, что вы имеете в виду. Я полагаю, что любые изменения, которые вы хотите произвести на своем рабочем сервере, должны быть внесены в ваш рабочий сервер. Я знаком с django, но не так хорошо знаком с сервисной средой Google. - person vezult; 21.04.2009
comment
Когда вы выполняете обновление appcfg.py, которое загружает ваши локальные файлы на серверы AppEngine. Таким образом, вся конфигурация, которую вам нужно выполнить, находится в вашей среде разработки, и она отражается на серверах с помощью команды обновления appcfg.py. - person dar; 21.04.2009
comment
Ответ Шивы ниже - не забудьте перезапустить сервер разработки. Это один из тех редких случаев, когда изменение не принимается автоматически. - person KeithL; 12.08.2010

На случай, если кто-то ищет это, я написал об этом небольшую статью в 2008 году: http://daily.profeth.de/2008/04/using-custom-django-template-helpers.html

person Joscha    schedule 28.11.2009
comment
Ссылка в настоящее время не работает - person Lee; 14.06.2018

Обязательно перезапустите сервер разработки после выполнения вышеуказанного шага.

person Siva    schedule 02.07.2010
comment
Это сбило меня с толку при настройке smart_if для GAE. +1 - person KeithL; 12.08.2010