Django: тот же тег шаблона, но в нескольких унаследованных шаблонах HTML - PullRequest
5 голосов
/ 14 февраля 2011

Я использую шаблонное наследование в django.

В настоящее время есть frame.html и book_detail.html

book_detail.html extends frame.html и у меня есть books_tags.py

# In frame.html
{% load books_tags %}
{% book_list %} # using a tag from books_tags.py



# In books.html
{% extends frame.html %}
{% block content %}
   {% book_list %} # I want to use this from books_tags.py also
{% endblock %}

Когда я пытаюсь использовать book_list из того же books_tags.py, это дает мне синтаксическую ошибку.С другой стороны, когда я сначала помещаю {% load books_tags%} в book_detail.html, это снова вызывает синтаксическую ошибку.

Недопустимый тег блока: «book_list», ожидаемый «endblock» или «endblock content»'

Можно ли использовать одни и те же теги шаблонов в нескольких унаследованных шаблонах?Или мне нужно создать frame_tags.py и book_detail_tags.py с одинаковым определением в нем?

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

Спасибо.

== UPDATE ==

Добавить template_tag внутри {% block content%} в books.html снова.

# In books.html
{% extends frame.html %}
{% block content %}
   **{% load books_tags %}**
   {% book_list %} # I want to use this from books_tags.py also
{% endblock %}

1 Ответ

8 голосов
/ 14 февраля 2011

Вы можете использовать одни и те же теги шаблонов в нескольких шаблонах, но вы должны вызывать {% load books_tags %} в каждом файле, даже если между ними есть отношения наследования.

См. https://docs.djangoproject.com/en/dev/topics/templates/#custom-libraries-and-template-inheritance

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