2011-09-09 6 views
4

私はMakoテンプレート内の未定義の変数にアクセスしようとするとNameErrorが発生し、かなり論理的にそうであることがわかりました。しかし、いくつかのアプリケーションでは、より正常に失敗することが望ましいでしょう。おそらく、そのようなエラーに空の文字列を代入することがあります(AttributeErrorが別の候補です)。これはDjangoテンプレート言語のデフォルトの動作です。マコでこの行動を起こす方法はありますか?Makoランタイム環境で、NameErrorとAttributeErrorを正常に処理するにはどうすればよいですか?

答えて

11

まあ、もう少しmakes it plainをグーグルことが判明:

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 

そしてそこに私達は行きます。ありがとう、Google。

+0

公正であるために、私のこの問題の調査は無益でした。とにかくありがとう。 – Ross

関連する問題