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}在所有这些视图函数中重复。

  • 这有什么捷径吗?
  • 我可以以某种方式将此函数绑定到我的应用程序的特定视图,而不必一直指定它(标记的行)吗?
  • 装修师傅能做这个吗?

请记住,我需要捕获函数的返回并将其进一步传递给模板。

4

1 回答 1

5

您可以为此使用TEMPLATE_CONTEXT_PROCESSORS设置

它是可调用对象(函数)的列表。每个函数都request作为参数接收,并应返回 a dict,在您的情况下 -return {'sData': getSContent()}

于 2012-10-26T11:17:08.980 回答