Добрый день/вечер/ночь.
Есть проблема ... ну не проблема....... просто интересно.
Есть небольшой самописный интернет магазин - самописный от А до Я. Старался как можно меньше привлекать внешних модулей.
keksik.com.ua - пишу для жены от нечего делать по вечерам.
Ну да не в этом суть.
Приходтся мне в контекст процессоре брать и делать такую инструкцию:
full_path = request.path
view, args, kwargs = resolve(full_path, )
и вот тут начинается самое интересное - в 90% случаев все ОК, но бываю запросы которые тупа не резолвятся и вываливается 404 ошибка.
Конструкция в данном случае была не критична и я решил её обезвредить
try:
full_path = request.path
view, args, kwargs = resolve(full_path, )
except Resolver404:
print full_path
Сайту однозначно полегчало, НО начались валится уже на принте ErrorEncoding
немного доработал print
print full_path.encode('utf8')
И теперь у меня в логи валится примерно следующее:
/молд-Губка-Боб/п000791/
Да. Забыл сказать. Ради личного эксперимента сделал возможность делать все URL русскими буквами.
Танцами с бубном сам для себя выяснил, что это кодировка cp1252.
В задаче вопрос:
-
какого хрена время от времени от разных пользователей приходят такие запросы?
-
как правильно нужно обойти эту ситуацию с resolve(), что-бы не городить конструкцию
try: ...
except Resolver404:
-
сообщество я смотрю тут дружное ... буду признателен любому совету по самому сайту.
Updated 17 Sept. 2015, 9:34 by AlexStarov.