我正在尝试从非标准位置加载自定义模板标记,即。不是来自project.myapp.templatetags
,而是来自 project.myapp.extra_level.templatetags
。
我可以使用django.template.base.add_to_builtins
全局加载它们,但这只是不好的做法恕我直言。
from django.template.base import add_to_builtins
add_to_builtins('myapp.extra_level.templatetags.custom_tags')
由于不存在类似于“TEMPLATE_DIRS”的设置,我不得不发挥创意。像这样的选项可以节省生命:)
第一个想法是使用与load_all_installed_template_libraries
类似的django.contrib.admindocs.views
并将其加载到我的设置中,但当然我得到“RuntimeError:App注册表尚未就绪。”。
另一个想法是在project.myapp.__init__
中加载那些更深层次的模板标签(对于project.myapp.extra_level.templatetags
中的所有模板标签库),但模板标签库的加载基于文件。
有任何方法可以实现这一目标吗?也许我可以通过__init__
文件以某种方式伪造更深层次的文件并伪造它们?或者有更好的方法从自定义位置加载模板标签吗?