2016-11-03 2 views
0

Я работаю с довольно большой установкой Django с 70 приложениями внутри нее. Один из последних запросов - заставить работать с нечувствительными к регистру URL. Есть ли способ получить каждое приложение в нем для использования нечувствительных к регистру URL без необходимости изменять urls.py для каждого приложения?Сделать все URL-адреса Django нечувствительными к регистру?

Это довольно простой процесс, чтобы одно приложение не чувствило к регистру (например, Case insensitive urls for Django?), но учитывая количество приложений, есть ли способ (например: middleware) сделать это?

ответ

0
  1. Midddleware? Ну, вы можете перенаправить или изменить сам запрос в process_request до lower(url) или что-то более сложное. Я бы избегал этого, хотя, как и в случае «70 приложений», вы создавали бы значительную дополнительную нагрузку.

  2. Вы можете настроить свой веб-сервер (nginx? Apache?). Я считаю, что это хороший путь.

  3. Вы можете grep and sed ваших источников. Если ваша среда IDE не обеспечивает такую ​​функциональность. Это то, что я определенно предпочел бы.

  4. Вы можете обернуть свой urlpatterns в метод, который будет применять (?i) перед каждым регулярным выражением (шаблон url).

  5. Конечно, вы всегда можете обезвредить что-то. Но это очень, очень уродливое решение. Тем не менее, если вы чувствуете себя отчаянным, LocaleRegexProvider.regex в urlresolvers

Смежные вопросы