параметр передачи django для функции в теге шаблона - PullRequest
10 голосов
/ 05 мая 2011

Можно ли передать параметр в функцию внутри тега шаблона django?

Определенный класс и функция:

class Bar():

    def foo(self, value):
       # do something here
       return True

в шаблоне:

{% if my_bar.foo:my_value %}Yes{% endif %}

В настоящее время я получаю TemplateSyntaxError "Не удалось разобрать остаток"

1 Ответ

10 голосов
/ 05 мая 2011

Вам необходимо импортировать библиотеку шаблонов в ваш файл с фильтрами шаблонов:

from django import template

register = template.Library()

Тогда вам нужно зарегистрировать функцию фильтра шаблонов в этом файле:

@register.filter(name='foo')

Затем создайте свою функцию фильтра следующим образом:

@stringfilter
def foo(value):
    value = #do something with value
    return value #return value

Затем вы помещаете файл в ваше приложение в эту иерархию:

app/
    models.py
    templatetags/
        __init__.py
        foo_functions.py
    views.py

Затем, чтобы загрузить файл foo_functions в шаблон, вам нужно запустить это:

{% load foo_functions %}

Тогда вы используете foo следующим образом:

{% if my_value|foo %}Yes{% endif %}

Подробнее об этом можно прочитать здесь:

http://docs.djangoproject.com/en/dev/howto/custom-template-tags/

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