Роман Надточий: Можешь из каждого имени создать md5 свёртку и создать иерархию вложенных папок, допустим, так: files/de/file.json, где files - корневая папка для файлов. de - первые два символа в md5. Смысл в том, что в папке files появится не более 256 (16*16) папок, и в каждую из них упадут где-то по 235 файлов (если файлов действительно 60000).
BlastPy:
1) Если Вы используете обычные функции в качестве вьюх - используйте render вместо render_to_response (там первым параметром вставляете request и он идёт в контекст).
2) Если вы НИЗАЧТО не хотите использовать render - stackoverflow.com/questions/702592/django-request-...
3) Самый лучший способ - юзать CBV. Вюха должна наследоваться от TemplateView (очевидно, либо от её наследников - DetailView, ListView, UpdateView, FormView и т.д.). Тогда просто используйте {{ view.request }} вместо {{ request }} или переопределите get_context_data.
BlastPy: Вашим способом могут вызываться лишние срабатывания (допустим, активная вкладка с pk - 2, а URL какой-то другой - 122 или 222 или вообще что угодно, где есть двойка). Но если УЖ ОЧЕНЬ ХОЧЕТСЯ - проверьте, идёт ли в контекст request.
Igor Mikhaylov: Думаете, кому-то нужно доказывать Вам что-то? Нужно быть слишком далёким от ИТ, чтобы не смочь загуглить "Доля Symbian на рынке" и увидеть эту крохотную цифру и надпись о состоянии проекта: "проект закрыт".
hardwellZero: Советую, всё-таки, добавлять $ в конец регэкса, если URL конечный, потому что такой конфиг будет съедать всё, что начинается на test/: test/, test/hello/, test/hello/world/ и т.д.