Daniel A
Daniel A

Reputation: 31

Template file not created after adding Page Class to models.py

So I'm trying to get started with Wagtail, following the 10 minute guide but I'm having a problem creating A basic blog.

So after modifying blog/models.py:

from wagtail.wagtailcore.models import Page
from wagtail.wagtailcore.fields import RichTextField
from wagtail.wagtailadmin.edit_handlers import FieldPanel

class BlogIndexPage(Page):
intro = RichTextField(blank=True)

content_panels = Page.content_panels + [
    FieldPanel('intro', classname="full")
]

And running makemigrations and migrate:

$ python manage.py makemigrations

Migrations for 'blog':
  blog/migrations/0001_initial.py:
    - Create model BlogIndexPage

$ python manage.py migrate

Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, home,     sessions, taggit, wagtailadmin, wagtailcore, wagtaildocs, wagtailembeds,      wagtailforms, wagtailimages, wagtailredirects, wagtailsearch, wagtailusers
Running migrations:
  Applying blog.0001_initial... OK

The default template (blog/templates/blog/blog_index_page.html) is nowhere to be found. From what I understand, this file should be created automatically:

Since the model is called BlogIndexPage, the default template name (unless we override it) will be blog/templates/blog/blog_index_page.html:

Or perhaps I'm missing something?

Wagtail uses normal Django templates to render each page type. It automatically generates a template filename from the model name by separating capital letters with underscores (e.g. HomePage becomes home_page.html)

Upvotes: 3

Views: 223

Answers (1)

gasman
gasman

Reputation: 25227

This is the expected behaviour. The template file / directory isn't created automatically on creating the page model - you have to add it yourself.

Upvotes: 1

Related Questions