Посмертный загрузчик шаблонов трясогузки, хотя источник существует

хорошо, моя проблема в том, что загрузчик шаблонов не находит файл, который ДЕЙСТВИТЕЛЬНО существует!! Прежде всего, это произошло, когда я попытался изменить иерархию своего сайта:

Я попытался поместить новый тип страницы (MainPage) в качестве первого дочернего элемента Root и установить все остальные страницы (Home и Events) ниже него. Таким образом, HomePage, которая раньше находилась на корневом уровне, теперь настроена как дочерняя для MainPage, а Events — дочерние для HomePage.

Все это я сделал через админку трясогузки. Затем я создал шаблон main_page.html, который загружает base.html и используемые теги.

Но теперь это будет сложно:

Поскольку все работало очень хорошо, после изменения иерархии загрузчик шаблона больше не находит файл, используемый для панели навигации: top_menu_children.html. Вот моя иерархия:

- my-site/
     |  - my-app/
             |  - templatetags/
                       |  - my-app_tags.py
             |  - templates/
                       |  - my-app/
                              |  - main_page.html
                              |  - events_page.html
                              |  - home_page.html
                              |  - tags/
                                     |  - top_menu.html
                                     |  - top_menu_children.html
     |  - my-site/
             |  - templates/
                       |  - base.html

Теперь вот содержимое my-app_tags.py:

...
@register.inclusion_tag('my-app/tags/top_menu_chidren.html'
                        ,takes_context=True)
    def top_menu_children(context, parent):
        menuitems_children = parent.get_children()
        menuitems_children = menuitems_children.live().in_menu()
        return {
           'parent': parent,
            'menuitems_children': menuitems_children,
            'request': context['request'],
        }              

и, наконец, это выдержка из ошибки, которую я получаю:

Template-loader postmortem

Django tried loading these templates, in this order:

Using engine django:

django.template.loaders.filesystem.Loader: ../my-site/my-site/templates/my-app/tags/top_menu_chidren.html (Source does not exist)
django.template.loaders.app_directories.Loader: .../my-site/my-app/templates/my-app/tags/top_menu_chidren.html (Source does not exist)

Второй ДОЛЖЕН совпадать!!!!

Извините, если это выглядит немного запутанно, но я попытался описать контекст: загрузчик шаблонов ищет в нужном месте файл, который существует, но теперь говорит, что его нет.

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


person LaMut    schedule 25.01.2016    source источник


Ответы (1)


В названии вашего шаблона при регистрации тега шаблона есть опечатка:

@register.inclusion_tag('my-app/tags/top_menu_chidren.html'
                    ,takes_context=True)

он читается как top_menu_chidren.html, а должен быть top_menu_children.html, так как это имя вашего шаблона.

ИЗМЕНИТЬ

Ваш загрузчик шаблонов ищет шаблон с именем top_menu_chidren.html или в папке templates/my-app/tags у вас есть шаблон с именем top_menu_children.html.

person doru    schedule 25.01.2016
comment
Боже мой, даже когда ты ответил мне, я не мог видеть пропавшую л ... Большое спасибо, иногда нам нужен еще один взгляд - person LaMut; 25.01.2016