2011-09-09 4 views
4

Mako 템플릿에서 정의되지 않은 변수에 액세스하려고하면 NameError이 발생하고 매우 논리적으로 그렇습니다. 그러나 일부 응용 프로그램에서는 오류를 빈 문자열로 대체하는 것이 더 적절하게 실패하는 것이 바람직합니다 (AttributeError이 또 다른 후보 임). 이것은 Django 템플릿 언어의 기본 동작입니다. Mako에서이 동작을 수행 할 수있는 방법이 있습니까?Mako 런타임 환경에서 NameError 및 AttributeError를 정상적으로 처리하려면 어떻게해야합니까?

답변

11

음, 더 조금 makes it plain을 인터넷 검색을 밝혀 :

import mako.runtime 
mako.runtime.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 

그리고 거기에 우리가 간다 : 미정의 원래 값의 소스를 읽기

계몽이다. 고마워, 구글.

+0

공정하게 말하자면,이 문제에 대한 인터넷 검색 시도는 쓸데 없었습니다. 어쨌든 고마워. – Ross