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