2012-03-30 5 views
0

숨겨진 양식 태그의 값으로 전달되는 변수가 포함 된 mako 양식이 있습니다. 어떻게 든 변수가 제대로 전달되지 않습니다. 이 코드는 이전에는 작동했지만 지금은 생성 된 html이 값을 올바르게 렌더링하지 않습니다.마코 변수가 피라미드 형태로 제대로 전달되지 않음

마코 코드 :

<b>Create model at path</b>: ${ppath} 
<%def name="direct_load_model_form(method, ppath)"> 
${h.tags.form(method, multipart=True, method='post', hidden_fields=[('ppath', ppath)])} 
<b>Node Name: </b>${h.tags.text('node_name')}<BR> 
<b>Parameters: </b>${h.tags.file('params_file', size=100)}<BR> 
${h.tags.submit('submit', 'Create')} 
${h.tags.end_form()} 
</%def> 

${self.direct_load_model_form(process_route, ppath)} 

hidden_fields 기능은 웹 도우미 라이브러리입니다. 내 견해로는 ppathppath = self.request.POST['ppath']으로 사용하려고합니다.

변수가 첫 번째 줄에서 올바르게 렌더링되지만 값으로 숨겨진 필드에 전달되지 않습니다. 다른 시간이나 다른 것을 탈출해야합니까? 여기

<input type="hidden" value="" name="ppath"> 
+0

여기 마코와 문제가 있다고 생각하지 않습니다. 그것은 아마 당신이 당신의 질문에 명시하지 않은 양식 라이브러리를 사용하는 방법 일 것입니다. 디버깅을 돕기 위해 어딘가에서'$ {ppath}'를 시도해 볼 수 있습니다. 또한 숨겨진 입력을 직접 작성할 수도 있습니다 :''. –

+0

내 질문이 업데이트되었습니다. 이전에 템플릿 코드가 제대로 작동했는지 확신 할 수 있습니다. 숨겨진 입력을 직접 작성할 수도 있지만 hidden_fields는 둘 이상의 값을 가질 때 매우 편리합니다. 아마 내 자신의 방법을 쓸 것입니다. – sutee

+0

보기 코드의 단순화 된 버전을 올려서 실제로 ppath를 템플릿에 전달하는 방법과 사용중인 webhelpers 버전을 확인할 수 있습니까? – BenTrofatter

답변

1

대신 사방 ppath를 사용하면 경로로 DEF 기능에 ppath의 이름을 바꿀 수있는, 당신이 시도 할 수있는 일입니다 :

이 렌더링 된 HTML이다.

<b>Create model at path</b>: ${ppath} 

<%def name="direct_load_model_form(method, path)"> 
    ${h.tags.form(method, multipart=True, method='post', hidden_fields=[('ppath', path)])} 
    <b>Node Name: </b>${h.tags.text('node_name')}<BR> 
    <b>Parameters: </b>${h.tags.file('params_file', size=100)}<BR> 
    ${h.tags.submit('submit', 'Create')} 
    ${h.tags.end_form()} 
</%def> 

${self.direct_load_model_form(process_route, ppath)} 

그것은 문제가 될 수 있지만 마코는 파이썬 코드를 생성하기 때문에, 어딘가에, 함수로 전송 매개 변수가 재정의 될 가능성이 있습니다. def가 전역 변수에 액세스 할 수 있기 때문에 어떤 변수를 사용할 지 명확하지 않지만 def를 호출하는 동안 재설정합니다.