Пользовательские теги шаблонов Django не загружаются в шаблоны

Я довольно долго искал в интернете эту проблему, но не смог решить мою проблему. Я пытаюсь объединить строки в одном из моих шаблонов Django, и изначально использовал add как таковой...

{% with "http://127.0.0.1:8000/post/"|add:p.post_id|add:"/" as post_link %}
... used here ...
{% endwith %}

... но обнаружил, что это глючит и имеет плохую форму. Поэтому я попытался создать собственный тег шаблона, который объединял бы строки с именем addstr...

{% with "http://127.0.0.1:8000/post/"|addstr:p.post_id|addstr:"/" as post_link %}
... used here ...
{% endwith %}

... но я получаю сообщение об ошибке "Ошибка при отображении шаблона, недопустимый фильтр: addstr".

Я создал каталог templatetags в правильном месте с init.py и cloud_extras.py внутри него. Содержимое cloud_extras.py:

from django import template

register = template.Library()

@register.filter
def addstr(arg1, arg2):
    """concatenate arg1 & arg2"""
    return str(arg1) + str(arg2)

Я также правильно установил приложение в settings.py и правильно загружаю шаблон в представлении (я знаю, что это правда, потому что я некоторое время работал с этим и решил создать ссылки для заголовков сообщений)

Большое вам спасибо за ваше время.

1 ответ

У вас есть {% load cloud_extras %} в шаблоне перед звонком?

Кстати, похоже, что вы, вероятно, захотите взглянуть на другие примеры и тег URL, потому что вы, вероятно, не хотите использовать в первую очередь жестко закодированные ссылки. Вместо этого попытайтесь найти способ сгенерировать правильную относительную ссылку для заданного объекта post.

Другие вопросы по тегам