我试图在使用Django 1.4.3(使用
Python 2.7.2)的项目中使用SO答案:
https://stackoverflow.com/a/6217194/493211中描述的模板标签.
我这样改编:
from django import template register = template.Library() @register.filter def template_exists(template_name): try: template.loader.get_template(template_name) return True except template.TemplateDoesNotExist: return False
所以我可以在另一个模板中使用它:
{% if 'profile/header.html'|template_exists %} {% include 'profile/header.html' %} {% else %} {% include 'common/header.html' %} {% endif %}
通过这种方式,我可以避免使用诸如在INSTALLED_APPS中更改我的应用程序的顺序等解决方案.
但是,它不起作用.如果模板不存在,那么异常会在堆栈/控制台中引发,但它不会传播到get_template(..)(从statement开始),因此不会传播给我愚蠢的API.因此,在渲染过程中,这会在我的脸上爆炸.我将stacktrace上传到pastebin
这是Django的通缉行为吗?
我最终停止做愚蠢的事情.但我的问题仍然存在.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。