Мені важко намагатися змусити двигун шаблонів Django правильно відступити при розширенні / включенні шаблонів
ці файли:
index.html
<html>
<body>
<div id="hello">
{% block bar %}
{% endblock %}
{% include "baz.html"%}
</div>
</body>
</html>
bar.html
{% extends "foo.html" %}
{% block bar %}
<p>bar</p>
{% endblock %}
baz.html
<p>baz</p>
буде виглядати як
<html>
<body>
<div id="hello">
<p>bar</p>
<p>baz</p>
</div>
</body>
</html>
Як я можу це виправити, щоб він відображався як
<html>
<body>
<div id="hello">
<p>bar</p>
<p>baz</p>
</div>
</body>
</html>
Введення вкладок вручну - це не варіант. Я використовую м'які вкладки (4 місця), якщо коли-небудь це має значення.
Відповіді:
6 за відповідь № 1Відступ не вставляється автоматично за рахунок спадкування шаблону Django. Щоб домогтися відступу, вам потрібно буде включити його всередину bar.html
:
{% extends "foo.html" %}
{% block bar %}
<p>bar</p>
{% endblock %}
2 для відповіді № 2
Ви повинні пояснити, чи є мета ваших потреб відступів.
Відступ дуже корисний на етапі налагодження, але відступ не сумісний з оптимізацією, оскільки це існує без простору фільтр
Ви можете написати власний фрагмент:
@register.tag
def myinden(parser, token):
args = token.contents.split()
n = args[1]
nodelist = parser.parse(("endmyinden",))
parser.delete_first_token()
return MyIndenNode(nodelist, n)
class MyIndenNode(Node, n):
def __init__(self, nodelist, n):
self.nodelist = nodelist
self.n = n
def render(self, context):
import re
regex = re.compile("^", re.M)
return re.sub(regex, "t"*int(self.n),
self.nodelist.render(context).strip())
До використання:
index.html
{% include "baz.html" with indentation="8" %}
baz.html
{{ myindent:myindentation }}
...
Зауважте, не перевірено. Також пропоную вам змінити фрагмент, який працює лише в режимі налагодження:
1 для відповіді № 3
Ви можете змінити метод візуалізації NodeList, як я вже зробив. Дивіться моє запитання з робочим кодом:
Правильне відступ у шаблонах Джанго (без мавпових латок)?
1 для відповіді № 4
Ще один варіант із вищезазначеного - використовувати проміжне програмне забезпечення Beautiful Soup.
Ось а підручник. Зауважте, що люди називають це програмне забезпечення ``РЕАЛЬНО ПОЛІЗ"" та поради, що кешують вихідні сторінки.