По какой причине вы не можете просто передать ссылку на функцию?
def my_func():
# ...
urlpatterns = patterns('',
(r'^foo/$', direct_to_template, {
'template': 'foo.html',
'filter_func': my_func,
}),
)
Редактировать : Крысы, которые не будут работать с общими представлениями :
Если значение в словаре может быть вызвано, общее представление вызовет его непосредственно перед рендерингом шаблона.
Возможно, вы можете обойти это, вставив свою функциюсловарь, хотя это не очень красиво:
def my_func():
# ...
urlpatterns = patterns('',
(r'^foo/$', direct_to_template, {
'template': 'foo.html',
'filter_funcs': { 'my_func': my_func },
}),
)
Я должен сказать, что почти каждый раз, когда я начинаю пытаться заставить общие представления делать что-то немного необычное, я склонен тратить довольно много времениперед написанием пользовательского представления из четырех строк, которое делает то, что мне нужно.