/ / Джанго шаблон двигуна відступ - django, django-шаблони, відступи

Відступ шаблону двигуна Django - django, django-шаблони, відступи

Мені важко намагатися змусити двигун шаблонів 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.

Ось а підручник. Зауважте, що люди називають це програмне забезпечення ``РЕАЛЬНО ПОЛІЗ"" та поради, що кешують вихідні сторінки.