Как изменить файл шаблона PageModel для режима предварительного просмотра?
Я хочу использовать wagtail как headless CMS, поэтому я хочу, чтобы предварительный просмотр (для всех страниц) загружался из файла base.html
. Затем я разверну свое приложение React на этом файле статически. Я создал следующие Page Model
class BlogPage(Page):
# Database fields
body = RichTextField()
date = models.DateField("Post date")
feed_image = models.ForeignKey(
'wagtailimages.Image',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+'
)
# Search index configuration
search_fields = Page.search_fields + [
index.SearchField('body'),
index.FilterField('date'),
]
# Editor panels configuration
content_panels = Page.content_panels + [
FieldPanel('date'),
FieldPanel('body', classname="full"),
InlinePanel('related_links', label="Related links"),
]
promote_panels = [
MultiFieldPanel(Page.promote_panels, "Common page configuration"),
ImageChooserPanel('feed_image'),
]
# Parent page / subpage type rules
parent_page_types = ['home.HomePage']
subpage_types = []
Когда я хочу просмотреть страницу, которую я создал с помощью этой модели, я получаю следующую ошибку:
TemplateDoesNotExist at /new-title/
home/blog_page.html
Request Method: GET
Request URL: http://localhost/new-title/
Django Version: 3.2.6
Exception Type: TemplateDoesNotExist
Exception Value:
home/blog_page.html
Exception Location: My-Folder/.venv/lib/python3.7/site-packages/django/template/loader.py, line 19, in get_template
Python Executable: My-Folder/.venv/bin/python
Python Version: 3.7.5
Python Path:
['My-Folder/wagtail-react-website/wagtail_website',
'/usr/lib/python37.zip',
'/usr/lib/python3.7',
'/usr/lib/python3.7/lib-dynload',
'My-Folder/.venv/lib/python3.7/site-packages']
Server time: Thu, 02 Sep 2021 10:28:26 +0000
Template-loader postmortem
Django tried loading these templates, in this order:
Using engine django:
django.template.loaders.filesystem.Loader: My-Folder/wagtail-react-website/wagtail_website/wagtail_website/templates/home/blog_page.html (Source does not exist)
django.template.loaders.app_directories.Loader: My-Folder/wagtail-react-website/wagtail_website/home/templates/home/blog_page.html (Source does not exist)
.
.
.
Есть ли возможность настроить работу этого загрузчика шаблонов?
Путь шаблона для модели страницы по умолчанию имеет значение <app_name>/<model_name>.html
, но вы можете переопределить его, установив атрибут template
:
class BlogPage(Page):
template = 'base.html'