Невозможно расширить базовые шаблоны Django - PullRequest
0 голосов
/ 21 января 2019

Я создал файл base.html со следующим содержимым. yarnMMS / шаблоны / мой / base.html

{% load staticfiles %}
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>Yarn Management System</title>
</head>
<body>
<div class="content-page">

        <!-- Start content -->

        {% block content %}
        {% endblock  %}
        <!-- END content -->

    </div>
</body>
</html>

Теперь я пытаюсь расширить свой base.html. yarnMMS / шаблоны / мой / content.html

{% extends 'my/base.html' %}
{% block content %}
 <h1>Content Block</h1>
{% endblock %}

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

Вот мой файл settings.py, в который я добавил каталог шаблонов.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
] 

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Вы можете добавить раздел в settings.py, где отмечен TEMPLATES, к вашему вопросу. Но проверьте следующее, возможно, именно в этом проблема.

Убедитесь, что в вашем модуле settings.py есть следующая строка в настройке TEMPLATES:

...
TEMPLATES = [
             ...
             'DIRS': [
                 os.path.join(BASE_DIR, 'templates'),
             ],
             ...
]
...

Это говорит django искать шаблоны в этом каталоге, в данном случае templates в каталоге базового каталога проекта BASE_DIR, вы можете добавить столько, сколько хотите, просто убедитесь, что добавили их в DIRS настройте и укажите местоположение на диске, а затем вызовите их в своих шаблонах!

0 голосов
/ 21 января 2019

Для расширения и наследования шаблонов внутри приложения необходимо указать его имя в теге.

Это должно работать:

{% extends 'app_name/base.html' %}

Если он находится внутри другой папки в каталоге templates вашего проекта, просто укажите имя папки:

{% extends 'folder_name/base.html' %}
...