我正在使用相当大的Django设置,其中包含70多个应用程序。最近的一个请求是使其与不区分大小写的URL一起使用。有没有办法让其中的每个应用程序使用不区分大小写的URL而不必更改每个应用程序的urls.py?
这是一个相当简单的过程,让单个应用程序不区分大小写(例如:Case insensitive urls for Django?),但考虑到应用程序的数量,是否有更好的(例如:中间件)方式?
答案 0 :(得分:0)
Midddleware?好吧,您可以将请求本身重定向或更改为process_request至lower(url)
或更复杂的内容。我会避免这样做,就像“70多个应用程序”一样,你会产生很大的额外负担。
您可以配置您的网络服务器(nginx?apache?)。我相信这是一个很好的方式。
您可以grep and sed来源。如果您的IDE不提供此类功能。这就是我绝对喜欢的。
您可以将urlpatterns
打包到一个方法中,该方法会在每个正则表达式(网址格式)前应用(?i)
。
当然,你可以随时修补一些东西。但这是一个非常非常难看的解决方案。不过,如果您感到绝望,urlresolvers
LocaleRegexProvider.regex
醇>