Как использовать тег пользовательского шаблона в сочетании со встроенным тегом "with" в Django?
У меня есть такой простой тег:
myapp/templatetags/my_filters.py
@register.simple_tag
def get_bookmark_object(content_type, object_id):
return Bookmark.objects.get(content_type=content_type, object_id=object_id)
В моем шаблоне я хочу иметь возможность сделать следующее:
{% load my_filters %}
{% with object as bookmark %}
{% with bookmark_object=get_bookmark_object bookmark.content_type bookmark.object_id %}
{% if bookmark.content_type.model == 'post' %}
{% include 'content/post/object.html' with object=bookmark_object user_bookmark=bookmark %}
{% elif bookmark.content_type.model == 'note' %}
{% include 'content/note/object.html' with object=bookmark_object user_bookmark=bookmark %}
{% endif %}
{% endwith %}
{% endwith %}
Я получаю ошибку:
TemplateSyntaxError at /my-page/
'with' received an invalid token: 'bookmark.content_type'
Мой вопрос таков:
Как использовать пользовательский тег шаблона get_bookmark_object
в утверждении with
? Пример с кодом помог бы мне многое прояснить.
Ссылка: Django со встроенным
То, что вы определили, является тегом шаблона, вы можете присвоить значение, созданное тегом шаблона, с помощью тега {% … as … %}
:
{% get_bookmark_object bookmark.content_type bookmark.object_id as bookmark_object %}
…