2011-10-15 1 views
2

양식을 렌더링하는 데 도움이되는 Mako 확장을 쓰고 있습니다. 나는 CSS 수업에 관한 한 큰 걸림돌을 만나기 전까지 훌륭한 발전을 이루었다. 나는 다음과 같다 코드를 작성하려면 :"class"를 Mako 매크로의 옵션으로 사용하기

<%fp:form method="post" action="" class="css-class"%> 
...content 
</%fp:form> 

FP 기능 : 형태는 외모를 의미 단순히 좋아 :

@supports_caller 
def form(context, **kwargs): 
    #... 

이 코드를 실행하면, 나는 다음과 같은 예외가 :

SyntaxException: (SyntaxError) invalid syntax (<unknown>, line 1) (u"fp.form(method=u'post',action=u'',class=u'css-class')") at line: 1 char: 52 

"class"속성이 지정된 경우에만 발생합니다. 아마도 Mako가 사전 압축 해제가 아닌 키워드 인수로 직접 변환하기 때문입니다. 내 함수에 특별한 "바인드합니다"인수를 전달했지만, 마코에 DICT를 전달하는 좋은 방법이 될 수없는 것 같습니다 :

<%fp:form method="post" action="" attrs="${{'class':'css-class'}}"%> 
#SyntaxError: invalid syntax 
<%fp:form method="post" action="" attrs="${dict(class='css-class')}"%> 
#Won't work - can't pass 'class' directly as a keyword argument! 

그래서 어떻게이 문제를 어떻게해야합니까? "css_class"와 같은 특수 속성을 지정하여 클래스로 변환 할 수 있다는 것을 알고 있습니다.하지만 이는 약간의 해킹이며 css_class가있는 속성이있는 양식을 생성 할 때마다 라이브러리가 더 이상 사용되지 못하게합니다.

+1

'class_' 인수에 이름을 지정하십시오. –

답변

2

class은 키워드이므로 항상 구문 분석됩니다. 사람들은 대개 대신 class_을 사용합니다.