RabbitRun9, контекстные процессоры - это самый простой вариант. Другой часто используемый - это разносить контексты по примесям, из которых потом собирать вьюхи под разные шаблоны.
Орхан Гасанлы, инжектить нельзя. В данном случае значение message не заменяется, а используется как есть. Подстановка значения при формировании ошибки производится не контейнером DI.
Andrei1penguin1, это слишком общий вопрос. Зачем вообще в функциях используется return? Очевидно, чтобы что-то возвращать. Как возвращённое значение используется - зависит от того, что функция делает, и как её использует вызывающий код. Разница только в том, что return сразу возвращает значение вызывающему коду, а Celery асинхронно и через посредника.
mipfikus, с какого перепуга нельзя отказаться от обновлений? Если это Anroid, то в настройках системы можно отключить автоматические обновления как для самой системы, так и для приложений. Правда, часть приложений без обновлений не смогут с серверами соединится, но это уже другой вопрос.