Django {% url %} 模板标签在无法反转提供的 URL 时会引发 NoReverseMatch 错误。这在开发中很有用,但在生产中,这会阻止用户陷入丑陋的 500 错误,阻止整个页面,并导致他们认为我们的网站已损坏。
模板开发人员不应该因为拼写错误而破坏整个网站。我想要做的是透明地覆盖此行为,以便仅在生产中,如果找不到反向匹配,它会输出一个默认 url,如“#”,并在后台向我们的异常跟踪系统报告错误,但仍然允许用户继续他们正在做的事情而不会引发 500 错误。
有没有办法用我自己的更安全的版本透明地替换默认的 {% url %} 标记?我不想在网站上每个模板的顶部添加 {% load my_custom_url_tag %},因为在某些时候人们会忘记,否则标签的行为将是相同的,唯一的区别在于它如何处理错误。