gpt4 book ai didi

django - 使 django url 标记静默失败

转载 作者:行者123 更新时间:2023-12-02 22:12:37 26 4
gpt4 key购买 nike

Django {% url %} 模板标签在无法反转提供的 URL 时引发 NoReverseMatch 错误。这在开发中很有用,但在生产中,这会阻止用户因丑陋的 500 错误而陷入困境,阻止整个页面,并导致他们认为我们的网站已损坏。

模板开发人员不应该因为错字而导致整个网站瘫痪。我想做的是透明地覆盖此行为,以便仅在生产中,如果找不到反向匹配,它会输出默认 url,如“#”,并在后台向我们的异常跟踪系统报告错误,但仍然让用户继续他们正在做的事情而不会引发 500 错误。

有没有办法透明地用我自己的更安全的版本替换默认的 {% url %} 标签?我不想在网站上的每个模板的顶部添加 {% load my_custom_url_tag %},因为在某些时候人们会忘记,否则标签的行为将是相同的,唯一区别在于它如何处理错误。

最佳答案

您可以在静默模式下使用内置的 url 标记,尝试查找,然后使用它找到的 URL——如果它找到了什么。

来自Django docs :

This {% url ... as var %} syntax will not cause an error if the view is missing. In practice you’ll use this to link to views that are optional:

{% url 'path.to.view' as the_url %}
{% if the_url %}
<a href="{{ the_url }}">Link to optional stuff</a>
{% endif %}

希望对您有所帮助。

关于django - 使 django url 标记静默失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15004575/

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