12

私はdjangoコードのクリーンアップを行っています - 私のIDEはPythonコードで未使用の変数などを簡単に検出できますが、未使用のテンプレート変数を見つける方法が見つかりませんでした.テンプレートによってアクセスされないコンテキスト ディクショナリの値を見つけます。

このためのツールはありますか?

編集:オフラインソリューション、静的コード分析ツールなどを探しています。以下に提案する偏執的なテンプレートソリューションは何もないよりはましですが{% if ... %}、テンプレートには複数のブランチがあり、さらに、参照されていないすべての変数を見つけるためにすべてのビューを (すべてのユース ケースで) テストする必要があるため、最適ではありません。

4

1 に答える 1

2

パラノイド django テンプレートソリューションを試してください:

class ParanoidContextProxy(object):
    """
    This is a poor-man's 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]
于 2012-08-10T12:35:49.197 に答える