С Джангой такой трюк врядли получиться. Попробуй Tornado, Кешировние в условиях асинхронности работает, но там обращаться с кешем конечно посложнее чем в синхронном подходе. Допустим нам надо сделать выборку из базы, отрендерить html и закешировать его. В синхронном подходе все просто.
1. Делаем запрос к базе
2. Рендерим html
3. Засовываем в кеш
4. Выдаем ответ
приходит вторй запрос
1. проверяем кеш
2. отдаем ответ
В асинхронном будет так
1. Делаем запрос к базе
2. И тут приходит второй запрос
Кеш мы еще отдать не можем, т.к. мы еще даже не получили ответа от базы. И второй раз сделать запрос мы тоже не можем, потому, что при большом количестве таких запросов наша база умерт.
В node.js я например делаю так, при первом запросе создаю promise кэша. Кода приходит кторой запрос, возвращаю этот promise. И когда отработает запрос к БД и отрендериться html отдам оба ответа. В терминах Торнады не знаю как это будет, т.к. мало с ней работал.