5

Mako テンプレート内で未定義の変数にアクセスしようとするNameErrorと、非常に論理的に が発生することがわかりました。ただし、一部のアプリケーションでは、より適切に失敗することが望ましく、おそらくそのようなエラーで空の文字列を置き換えます (AttributeError別の候補です)。これは、Django テンプレート言語のデフォルトの動作です。Mako でこの動作を取得する方法はありますか?

4

1 に答える 1

12

さて、もう少しグーグルで調べると分かりやすくなります:

import mako.runtime
mako.runtime.UNDEFINED = ''

現在、未定義の変数は空の文字列を生成します。

UNDEFINED の元の値のソースを読むことは啓発的です:

class Undefined(object):
    """Represents an undefined value in a template.

    All template modules have a constant value 
    ``UNDEFINED`` present which is an instance of this
    object.

    """
    def __str__(self):
        raise NameError("Undefined")
    def __nonzero__(self):
        return False

そして、そこに行きます。ありがとう、グーグル。

于 2011-09-09T23:01:50.613 に答える