有没有办法禁止在Django模板中从NoReverseMatch
标签中抛出url
个异常(只是让它静默失败,返回一个空字符串或smth ...暂时,用于开发,当然)?
(我正在研究一个Django项目,就事情的组织而言是一团糟(一群远程工作者,承包商以及当地团队,他们将大量重叠任务分配给不同的人甚至前端并且后端工作倾向于混合作为同一任务的一部分...)和我真的需要忽略/隐藏/禁用模板NoReverseMatch
标签抛出的url
按顺序高效地完成我的工作而不是最终做其他人的工作,以便能够做我的工作...... )
答案 0 :(得分:7)
另一种方法是使用{% url ... as var %}
,它不会引发异常(as explained in the documentation),但也不会将内联网呈现为内嵌。
你需要替换它:
<a href="{% url somepage %}">
用这个:
{% url somepage as var %}
<a href="{{ var }}">
根据您需要使用的模板数量,这可能是也可能不是更好的解决方案。
答案 1 :(得分:1)
最简单/最快的方法是更新django的url
标签,以便无声地失败。
您可以更新def url(parser, token):
中<your_django_path>/templatetags/future.py
上的功能定义,以使所有代码都在try ... except
中,并且在有任何代码时不会引发异常。
然而,这是我能想到的最快的黑客攻击,我不确定是否有更好的解决方案。