2015-03-12 3 views
1

Я новичок в структуре django. Я сомневаюсь в пакете библиотеки. может ли кто-нибудь объяснить мне о функции template.library() и в какой цели мы используем @ register.filter() перед запуском функции. Я определил код ниже.Какова цель использования template.library() и @ register.filter() в приведенном ниже коде

from django import template 
    register = template.Library() 
    @register.filter() 

    def boldcoffee(value): 
     '''Returns input wrapped in HTML <b> tags''' 
     return '<b>%s</b>' % value 

ответ

3

Это custom template filter. Это позволяет запускать код в шаблоне:

{{ some_var|boldcoffee }} 

Если some_var это «бла», то просчитанный результат будет:

<b>blah</b> 

Вы можете проверить built-in template tags and filters, например, из того, что может быть сделано с этот метод.

+0

Не могли бы вы вкратце объяснить, с какой целью будет использоваться –

+0

с помощью {{some_var | boldcoffee}}, мы можем напрямую вызвать имя метода boldcoffee() на странице шаблона. Тогда почему мы используем @ register.filter() здесь. –

+0

'boldcoffee()' не является методом 'some_var', поэтому мы не можем называть его напрямую, как' {{some_var.boldcoffee}} '. Когда мы регистрируем эту функцию в качестве фильтра, мы можем применить эту функцию к любой переменной var/constant в шаблоне. Например: '{{" some string "| boldcoffee}}'. – catavaran

0

Это специальный тег шаблона, который предоставляется django.

Вы можете создать собственный тег и фильтр для шаблонов в django.

Поэтому регистр используется для добавления пользовательского фильтра в библиотеку.