必要なのは、1 つ以上のビュー内で関数 (コールバック関数) を自動的に呼び出し、その結果を取得してテンプレートに渡すことです。
簡単な例を次に示します。
ユーティリティ.py:
def getSContent():
return 'some dynamic data'
ビュー.py:
def myFirstView(request):
...py code...
sData = getSContent() <== this line
return render_to_response('template.html',
{'sData': sData, <== this line
...
},
contenxt_instance = RequestContext(request))
def mySecondView(request):
...py code...
sData = getSContent() <== this line
return render_to_response('template.html',
{'sData': sData, <== this line
...
},
contenxt_instance = RequestContext(request))
..等々。
sData = getSContent()
{'sData': sData}
これらすべてのビュー関数内で繰り返されます。
- これに対するショートカットはありますか?
- この関数 (マークされた行) を常に指定しなくても、この関数をアプリの特定のビューにバインドできますか?
- デコレータはこの仕事をすることができますか?
関数の戻り値をキャッチして、さらにテンプレートに渡す必要があることに注意してください。