LS5*_*321 2 django django-templates django-urls
当Django {%url%}模板标签无法撤消提供的URL时,会引发NoReverseMatch错误.这在开发中非常有用,但在生产中,这会使用户因为丑陋的500错误而停止运行,阻止整个页面,并导致他们认为我们的网站已损坏.
模板开发人员不应该打破整个网站的拼写错误.我想要做的是透明地覆盖这种行为,这样,在生产中,如果找不到反向匹配,它会输出一个默认的URL,如"#",并将错误报告给后台的异常跟踪系统,但仍然让用户继续他们正在做的事情,而不会引起500错误.
有没有办法透明地用我自己的更安全的版本替换默认的{%url%}标签?我不想在网站上的每个模板的顶部添加{%load my_custom_url_tag%},因为在某些时候人们会忘记,并且标签的行为将是相同的,唯一的区别在于它如何处理错误.
小智 5
您可以在静默模式下使用内置url标记,尝试查找,然后使用它找到的URL - 如果找到了某些内容.
来自Django文档:
{% url ... as var %}如果缺少视图,则此语法不会导致错误.在实践中,您将使用它来链接到可选的视图:
{% url 'path.to.view' as the_url %}
{% if the_url %}
<a href="{{ the_url }}">Link to optional stuff</a>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |