我有这个使用imgix plugin的简单模板,如下所示:
// template_b.html
{% get_imgix project.picture %}
此行会导致错误,应替换为
{% get_imgix project.picture.url %}
这段代码位于包含的模板中:
// template_a.html
{% include "template_b.html" %}
似乎当模板标签失败时,在第一种情况下(引发AttributeError
),模板简单地被忽略。如果DEBUG
设置为False
,则不会引发错误。
虽然这对于防止任何面向用户的错误肯定是有用的,但仍然没有任何反馈意见。
您知道我在哪里可以找到与此行为相关的更多信息吗?是否还有方法可以告知失败?
答案 0 :(得分:3)
你并不是唯一一个被这种行为所困扰的人。请参阅django-developers邮件列表中的this discussion。
沉默行为has been deprecated in Django 1.11。在Django 2.1中,将引发异常。在Django 1.11和2.0中,如果include标记引发异常,则会收到弃用警告,但异常被静音。
我对早期版本的Django没有任何好的建议。如果它对您真的很重要,您可以创建自己的include
标记。