33

Django 以外のプロジェクトで Django テンプレートを使用しています。テンプレートにコンテキストにない変数への参照が含まれていないことを確認したいので、Django テンプレート レンダラー{{ non_existent_variable }}が存在しない場合にエラーを発生させる必要があります。non_existent_variableコンテキストで。

TEMPLATE_STRING_IF_INVALIDを何かに設定すると、この何かがレンダリングされたテンプレートにないことを確認できますが、それはまったくエレガントではありません。

Context が欠落しているキーエラーを飲み込む方法を、あまり多くの作業をせずにオーバーライドすることはできますか?

4

2 に答える 2

25

解決策を提供するDjango Snippetがあります。

# settings.py
class InvalidVarException(object):
    def __mod__(self, missing):
        try:
            missing_str=unicode(missing)
        except:
            missing_str='Failed to create string representation'
        raise Exception('Unknown template variable %r %s' % (missing, missing_str))
    def __contains__(self, search):
        if search=='%s':
            return True
        return False

TEMPLATE_DEBUG=True
TEMPLATE_STRING_IF_INVALID = InvalidVarException()
于 2013-03-09T15:20:03.767 に答える