Как заставить работать template processor только для нужного приложения\ссылки?
Добрый день!
Суть такая. Есть проект, к нему подключены приложения ( apps ), разные. Есть некоторые темплейт процессоры, которые преобразуют контекст. Некоторые требуются в одном апе, некоторые в другом. Это не правильно, на мой взгляд. Но джанга, как я понял, не умеет отключать процессоры для одной ссылки и влючать для другой.
Или умеет? Есть решения? Спасибо!
Контекст-процессоры глобальны. И нет ничего неправильного в том, что некоторые из подключенных процессоров не используются в тех или иных приложениях. Дефолтные контекст-процессоры ленивы (т.е. не будут производить никаких вычислений, пока явно не обратятся к той или иной переменной контекста). Если свои писать в том же lazy-стиле, не случится ничего страшного.
Если же очень-очень хочется отключить какой-то из контекст-процессоров в том или ином приложении, можно использовать threadlocals, чтобы пропатчить settings.TEMPLATE_CONTEXT_PROCESSORS для текущего запроса. Но это некрасиво и вообще костыль, нмвз.