DJANGO回调函数内部视图

时间:2012-10-26 11:10:45

标签: python django callback decorator

我需要的是在一个或多个视图中自动调用函数(回调函数),获取其结果并将其传递给模板。

这是一个简化的例子:

utils.py:

def getSContent():  
    return 'some dynamic data'

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

  • 这有什么捷径吗?
  • 我可以以某种方式绑定此功能 我的应用程序的特定视图,而无需指定它(标记为 线))一直?
  • 装饰师可以做这个工作吗?

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

1 个答案:

答案 0 :(得分:5)

您可以对此

使用TEMPLATE_CONTEXT_PROCESSORS设置

这是一个callables(函数)列表。每个函数都会收到request作为参数,在您的情况下应该返回dict - return {'sData': getSContent()}