Django {%url%} templatetag无法反转提供的URL时引发NoReverseMatch错误。这在开发中非常有用,但是在制作过程中,这会使用户停下脚步,导致500页错误,阻止整个页面,并导致他们认为我们的网站已损坏。使django url标记无提示失败
模板开发人员不应该能够打印整个网站的错字。我想要做的就是透明地覆盖这种行为,这样仅在生产环境中,如果找不到反向匹配,它会输出一个默认url,如“#”,并将错误报告给我们的后台异常跟踪系统,但仍然可以让用户在不增加500错误的情况下继续做他们正在做的事情。
有没有办法用我自己的安全版本来透明地替换默认的{%url%}标签?我不想在网站上的每个模板的顶部添加{%load my_custom_url_tag%},因为在某些时候人们会忘记,而且标记的行为将是相同的,唯一的区别在于它如何处理错误。
我们已经有一个自定义的500错误页面,向我们报告NoReverseMatch错误。它将以任何方式进行跟踪。我不希望发生的事情是让用户被阻止,无论他们试图做什么,并抱怨说整个网站已关闭,仅仅是因为某个编辑器在一段副本中放了一个错误的{%url%}标记。我希望它是一样无足轻重,就好像有人在页面中放入了一个破损的标签。 – LS55321 2013-02-21 14:30:11
我不明白的是为什么你会让代码没有投入生产。 – Brandon 2013-02-21 14:31:13
通过该逻辑,任何复制中存在拼写错误的页面也应该引发500错误。 – LS55321 2013-02-21 14:37:01