Я прошел через (болезненный) процесс написания пользовательского тега шаблона для использования в Django. Он зарегистрирован как include_tag, так что он отображает шаблон. Однако этот тег ломается, как только я пытаюсь что-то изменить.Являются ли теги шаблонов Django кэшированными?
Я попытался изменить количество параметров и соответственно изменить параметры при его вызове. Понятно, что новый код тега не загружается, потому что возникает ошибка, указывающая на несоответствие числа параметров, и очевидно, что он пытается вызвать старую функцию.
Такая же проблема возникает, если я пытаюсь изменить имя отображаемого шаблона и соответственно изменить имя шаблона на диске. Он продолжает пытаться вызвать старый шаблон. Я пробовал очистить старые файлы .pyc без везения.
В целом система работает так, как будто она кэширует теги шаблона, вероятно, из-за команды register
. Я прорыл бесконечные потоки, пытаясь выяснить, так ли это, но все могли найти Джеймса Беннетта, заявив here, что register
ничего не делает. Пожалуйста помоги!
Этот процесс был болезненным, потому что я столкнулся с ошибкой, описанной здесь в разделе «Магия», которая потребовала много времени для отладки: http://www.b-list.org/weblog/2007/dec/04/magic-tags/Оказывается, что так называемый ImportError затушевывается, потому что у моего недавно измененного каталога templatetags/был пустой файл __init__.py. Ему нужен хотя бы один персонаж. Кто знал. Тег действительно три строки, которые добавляются только к разочарованию. Код, который просто не должен ломаться! Вы абсолютно правы в сервере Django dev. Он перезагружает изменения так последовательно, что я не рассматривал их как точку отказа. – thebossman