Исключение 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' всех существующих приложений в вашем проекте.