Пользовательские теги шаблонов 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.