如何在extra_context中将函数名称传递给模板

时间:2011-11-07 23:58:41

标签: django

如何将函数传递给extra_context中的模板。感谢。

更新: 我的想法是,在模板中,我可以转身将该函数作为参数传递给过滤器。

1 个答案:

答案 0 :(得分:2)

你有什么理由不能传递函数参考吗?

def my_func():
    # ...

urlpatterns = patterns('',
    (r'^foo/$', direct_to_template, {
        'template': 'foo.html', 
        'filter_func': my_func,
    }),
)

编辑:老鼠,won't work with generic views

  

如果字典中的值是可调用的,则通用视图将在呈现模板之前调用它。

你可以通过在字典中粘贴你的函数来解决这个问题,尽管它不是很漂亮:

def my_func():
    # ...

urlpatterns = patterns('',
    (r'^foo/$', direct_to_template, {
        'template': 'foo.html', 
        'filter_funcs': { 'my_func': my_func },
    }),
)

我不得不说,几乎每当我开始尝试使通用视图做一些与众不同的事情时,我往往会浪费相当多的时间才能编写一个能够满足我需要的四行自定义视图。