Исключение InvalidTemplateLibrary при работе с документацией Wagtail на фрагментах

Я слежу за документацией Wagtail на Snippets, чтобы убедиться, что смогу это сделать, прежде чем создавать свою собственную. Но наткнулся на камень преткновения. Я добавил модель для рекламы в файл models.py и сейчас создаю файл demo_tags.py. В настоящее время это читает -

from django import template
from demo.models import *

register = template.Library()

... #don't know if something is supposed to go in here

# Advert snippets
@register.inclusion_tag('demo/tags/adverts.html', takes_context=True)
def adverts(context):
    return {
        'adverts': Advert.objects.all(),
        'request': context['request'],
    }

Когда я запускаю сервер разработки from demo.models import * линия создает InvalidTemplateLibraryошибка.

Ясно, что я должен заменить вместо 'demo' и '*' что-то, но что?

Кроме того, когда речь заходит о создании шаблона с именем adverts.html, в какой каталог он должен войти? теги один или с другими шаблонами блога?

Благодарю.

1 ответ

demo.models относится к модулю, где Advert модель определена на демонстрационном сайте Wagtail. Если вы определили это где-то еще - например, home/models.py файл, созданный в новом проекте Wagtail - вам необходимо изменить его соответствующим образом:

from home.models import *

Вы должны создать adverts.html в месте templates/demo/tags/adverts.html в каталоге вашего приложения. В более общем плане - Django будет искать шаблон по указанному вами пути ('demo/tags/adverts.html') относительно всех допустимых расположений шаблонов в вашем проекте - что обычно означает каталоги 'templates' всех существующих приложений в вашем проекте.

Другие вопросы по тегам