Как включенный файл может узнать, что он включен
В django вы можете включать html файлы в другие html файлы. Поэтому мой вопрос: существует ли переменная, чтобы второй файл знал, что он был включен? Если нет по умолчанию, могу ли я ее создать?
Вот пример:
a.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>From a.html</h1>
{% include "b.html" %}
</body>
</html>
b.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{% if included_in_file %}
<h1>From b.html</h1>
{% else %}
<h1>Hello</h1>
{% endif %}
</body>
</html>
Дело в том, что когда файл включен, он показывает что-то другое, чем при обычном использовании. Или мне просто нужно сделать второй файл для того же использования?
Если a.html
обрабатывается через представление, оно будет включать b.html
. Если вы хотите программно обработать это по каким-либо причинам, вы можете обернуть {% include "b.html" %}
в состояние, определенное в контексте вашего представления (например, include_b
)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>From a.html</h1>
{% if include_b == True %}
{% include "b.html" %}
{% endif %}
</body>
</html>
, что, вероятно, не самый приятный дизайн, на мой взгляд. Думайте об этом как о компонентах, которые вы хотите выводить условно.