Как передать имя функции в шаблон в extra_context - PullRequest
0 голосов
/ 08 ноября 2011

Как передать функцию в шаблон в extra_context. Спасибо.

Обновление: Идея состоит в том, что в шаблоне я мог бы развернуться и передать эту функцию в качестве параметра фильтру.

1 Ответ

2 голосов
/ 08 ноября 2011

По какой причине вы не можете просто передать ссылку на функцию?

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 },
    }),
)

Я должен сказать, что почти каждый раз, когда я начинаю пытаться заставить общие представления делать что-то немного необычное, я склонен тратить довольно много времениперед написанием пользовательского представления из четырех строк, которое делает то, что мне нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...