Пользовательский тег шаблона Django - PullRequest
0 голосов
/ 24 августа 2018

Я определил пользовательский тег шаблона в файле с именем custom_tags.py:

from django.conf import settings
from django import template

register = template.Library()

@register.simple_tag
def currencysymbol():
    if settings.LANGUAGE_CODE == 'en-gb':
        return '£'
    else:
        return 'unknown'

На что ссылается шаблон:

{% load custom_tags %}
{{ currencysymbol }}

Проблема в том, что он не рендерится. Это, безусловно, загрузка библиотеки, так как я изменил загрузку на тег на {% load foo %}, и он правильно сказал мне, что эта библиотека не существует, и перечислил 'custom_tags' в качестве одного из доступных параметров.

Однако, {{ currencysymbol }} вообще ничего не делает. Чтобы убедиться, что это не моя функция, я изменил ее так, чтобы она просто возвращала строку (без if / else и settings. Stuff), но она все равно ничего не отображала.

Я считаю, что следовал документам, поэтому не уверен, что происходит. Страница отображается без ошибок, но моего тега просто нет.

1 Ответ

0 голосов
/ 24 августа 2018

Вы определили тег, это означает, что вы должны использовать его следующим образом:

<b>{%</b> currencysymbol <b>%}</b>

То есть с {% .. %} скобками, не :

<s><b>{{</b> currencysymbol <b>}}</b></s>

{{ .. }} используется для переменных .

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