2012-03-13 2 views
1

보기에서 모듈을 어떻게 사용할 수 있습니까? 예를 들어 는 내가 markdown 모듈을 사용하려고 해요, 그래서 난 내 컨트롤러로 가져 :보기에서 모듈 사용

from gluon.contrib.markdown.markdown2 import markdown 

나는 response.render

return response.render('default/main.html', locals()) 

를 사용하지만 난에 액세스 할 때 보기

{{=markdown(post.message)}} 

나는 오류가 정의되지 않은 것을 말하는 얻을 :

<type 'exceptions.NameError'> name 'markdown' is not defined 

어떻게 모듈을 뷰에 전달할 수 있습니까? 완료하려면 locals() 함수 대신 사용할 수있는 함수가 있습니까?

내보기에서 dbsession에 액세스 할 수 있습니다. 내 models에 가져 오기 되었기 때문에 여기에 액세스 할 수 있습니까?

Web2Py Version 1.99.7 (2012-03-04 22:12:08) stable

UPDATE : 그것을 해결하기 위해 보인다 db.py 내 모델에서 가져 오기. 이 작업을 수행하는 더 좋은 방법이 있습니까?

답변

4

기록 용으로 만 사용하십시오.

지역 주민를 사용하는 것은 좋지 않습니다() 대신 response.render하기 위해 지역 주민을 통과

, 당신이보기를 렌더링하는 데 사용할 수있게하려면 키와 사전을 만드는 것이 좋습니다.

당신은 또한 당신이하려고하면 당신은 문제에 실행됩니다 mydict에()에서 지역 주민을 확장하려고하는 사전

from gluon.contrib.markdown.markdown2 import markdown 
mydict = dict(markdown=markdown, anotherkey=anothervalue) 
return response.render("path/to/view", mydict) 

망가에 가격 인하에 대한 참조를 포함 할 수 있습니다. 당신이 모델 파일에 가격 인하를 가져 오는 것입니다에 대한

또한 당신은 기본 web2py 동작을

from gluon.contrib.markdown.markdown2 import markdown 
response.view = "path/to/view" 
return dict(markdown=markdown, anotherkey=anothervalue) 

다른 옵션을 사용할 수 있습니다.