Как включенный файл может узнать, что он включен

В 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>

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

Вернуться на верх