2012-03-13 5 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) 

いけないの値下げへの参照を含めることができます。

また、あなたはちょうどあなたのための別のオプションは、モデルファイルに値下げをインポートすることです

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

デフォルトのweb2pyの動作を使用することができます。

関連する問題