Как найти неиспользуемые переменные шаблона в Django

Я делаю очистку кода django - моя IDE может легко обнаружить неиспользуемые переменные и т.д. в коде Python, но я не нашел способ найти неиспользуемые переменные шаблона - было бы намного проще очистить код представления, если бы я мог узнать, какие значения в словаре контекста не доступны шаблонами.

Есть ли инструмент для этого?

EDIT. Я ищу офлайн-решение, статический инструмент анализа кода или такой. В то время как предлагаемое ниже параноидальные шаблоны лучше, чем ничего, оно не является оптимальным, поскольку в шаблонах есть несколько ветвей {% if ... %} и, кроме того, потребовалось бы тестирование всех видов ( во всех случаях использования), чтобы найти все неизменяемые переменные.

Ответ 1

Попробуйте параноидальные шаблоны django:

class ParanoidContextProxy(object):
    """
    This is a poor-man proxy for a context instance.

    Make sure template rendering stops immediately on a KeyError.
    """
    def __init__(self, context):
        self.context = context
        self.seen_keys = set()

    def __getitem__(self, key):
        self.seen_keys.add(key)
        try:
            return self.context[key]
        except KeyError:
            raise ParanoidKeyError('ParanoidKeyError: %r' % (key,))

    def __getattr__(self, name):
        return getattr(self.context, name)
    def __setitem__(self, key, value):
        self.context[key] = value
    def __delitem__(self, key):
        del self.context[key]