gae_mini_profiler {% profiler_include%} выдает недопустимый тег блока: 'profiler_include' - PullRequest
4 голосов
/ 01 декабря 2011

Я пытаюсь установить gae_mini_profiler в моем приложении django-nonrel

Я поместил тег {% profiler_includes %} внизу моего base.html

В результате получается

Exception Type: TemplateSyntaxError
Exception Value: Invalid block tag: 'profiler_includes'

Я разместил

from gae_mini_profiler import profiler
application = profiler.ProfilerWSGIMiddleware(application)

внизу djangoppengine/main/__init__.py

Я следовал всем остальным инструкциям на https://github.com/kamens/gae_mini_profiler#start

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 04 апреля 2012

Я решил это, изменив gae_mini_profiler/templatetags.py на истинную библиотеку тегов шаблонов.

Для этого создайте пакет с именем templatetags, а затем переместите (и переименуйте) модуль templatetags.py в profiler_tags.py.

Внутри profiler_tags.py внесите следующие изменения:

Изменение:

from google.appengine.ext import webapp
register = webapp.template.create_template_register()

Кому:

from django.template import Library
register = Library()

Изменение:

path = os.path.join(os.path.dirname(__file__), "templates/includes.html")

Кому:

path = os.path.join(os.path.dirname(__file__), "../templates/includes.html")

В вашем файле настроек добавьте gae_mini_profiler в список установленных приложений.


Удалить все ссылки на

template.register_template_library('gae_mini_profiler.templatetags')

В ваших шаблонах, где бы у вас ни было {% profiler_includes %}, вам нужно добавить блок загрузки

 {% load profiler_tags %}

Я думаю, что это все изменения, но нужно проверить мой журнал git.

0 голосов
/ 01 декабря 2011

Используете ли вы новую среду исполнения Python 2.7 для GAE?Если это так, то настройка шаблона django немного отличается, и gae_mini_profiler еще не был обновлен (любой желающий может отправить это исправление, пока не получил его).

Это должно быть легко обойти, так какединственное, что вам нужно сделать, - это найти способ отобразить строку HTML, возвращаемую gae_mini_profiler.templatetags.profiler_includes() в любом месте вашей страницы.Есть несколько способов сделать это, если встроенный тег шаблона не работает как есть.Вы можете просто вызвать функцию в вашем базовом обработчике запросов и передать полученный html в ваш базовый шаблон, если это абсолютно необходимо (хотя это явно грубый хак).

Мы надеемся, что Python 2.7 будет работать с gae_mini_profilerв ближайшее время.Если вы не используете Python 2.7, я не уверен, в чем проблема, поскольку я ожидаю, что текущий код будет работать ...

...