【发布时间】:2011-01-19 15:03:52
【问题描述】:
对不起或令人困惑的标题!它实际上比听起来要简单得多。
我有一个函数:
def get_messages(request):
# do something expensive with the request
return 'string'
我希望能够从模板中调用该函数,因此我使用了上下文处理器:
def context_processor(request):
return {'messages':get_messages(request)}
所以现在当我的模板中有{{messages}} 时,string 会打印出来。太好了。
问题是get_messages 非常昂贵,而且并不总是需要。不到一半的模板需要它。有没有办法将函数传递给模板,如果它运行或不运行则留给模板?
我已经试过了:
def context_processor(request):
return {'messages':get_messages}
但这只是在模板中输出函数描述<function get_messages at 0x23e97d0>,而不是运行它。
【问题讨论】:
标签: django django-templates django-context