gpt4 book ai didi

python - 在 Django 模板中捕获异常

转载 作者:太空狗 更新时间:2023-10-29 17:32:29 24 4
gpt4 key购买 nike

我在 Django 模板中使用模板标签(标签是 thumbnail),它抛出一个异常,使模板失败并出现 500 错误。我想阻止这种情况发生,因为我无法完全控制偶尔触发此异常的源图像,并且在这些情况下使用空白/占位符图像。这是当前的模板代码:

{% thumbnail video.image_url "50x74" crop="center" as im %}
<img src="{% cdn_images im.url %}" />
{% empty %}
<img src="/media/img/noimage_thumb.png" alt="" />
{% endthumbnail %}

这是异常(PIL 抛出它):

TemplateSyntaxError at /

Caught IOError while rendering: cannot identify image file

我搜索了解决方案并提出了 silent_variable_failure这是一个属性,如果已定义,则异常会安静。我想这可能指向正确的方向,但据我所知,使用它的任何解决方案都意味着我必须修改模板标签代码本身,这是一个外部库——我不想那样做,

理想情况下,我想用 {% empty or exception_raised %} 替换我代码中的第三行。

这样的东西存在吗?您知道任何替代方案吗?

最佳答案

我一直以来的处理方式是将它推到模型层。所以在你的模型中:

  class MyImageModel(model.Model):
# model fields go here..

def get_url(self):
try:
# or whatever causes the exception
return self.url
except IOError:
return None

在你的模板中:

{% thumbnail video.image_url "50x74" crop="center" as im %}

{% if im.get_url %}
<img src="{% cdn_images im.get_url %}" />
{% else %}
<img src="/media/img/noimage_thumb.png" alt="" />
{% endif %}

{% endthumbnail %}

关于python - 在 Django 模板中捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8524077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com