[英]Make all Django URLs case insensitive?
我正在使用其中包含70多個應用程序的大型Django安裝程序。 最近的一項要求是使其與不區分大小寫的URL一起使用。 有沒有辦法讓每個應用程序都使用不區分大小寫的URL,而不必更改每個應用程序的urls.py?
使單個應用程序不區分大小寫是一個非常簡單的過程(例如: Django的大小寫不敏感的url? ),但是鑒於應用程序的數量,是否有更好的方法(例如:中間件)呢?
中間件? 好了,您可以將process_request中的請求本身重定向或更改為lower(url)
或更復雜的東西。 不過,我會避免這樣做,因為“ 70多個應用程序”會創建大量的額外負載。
您可以配置您的Web服務器(nginx?apache?)。 我相信這是一個好方法。
您可以grep和sed您的來源。 如果您的IDE不提供此類功能。 那就是我絕對希望的。
您可以將urlpatterns
包裝到一個方法中,該方法將在每個正則表達式(url模式)前面應用(?i)
)。
當然,您總是可以猴子修補某些東西。 但這是一個非常非常丑陋的解決方案。 不過,如果您感到絕望, LocaleRegexProvider.regex
在urlresolvers中使用LocaleRegexProvider.regex
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.