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