首先在models新增以下程式碼
@register_snippet
class BlogCategory(models.Model):
    name = models.CharField(max_length=255)
    icon = models.ForeignKey(
        'wagtailimages.Image', null=True, blank=True,
        on_delete=models.SET_NULL, related_name='+'
    )
    panels = [
        FieldPanel('name'),
        ImageChooserPanel('icon'),
    ]
    def __str__(self):
        return self.name
    class Meta:
        verbose_name_plural = 'blog categories'
其中icon是使用wagtail內建的Image model來處理
@register_snippet代表的是它是一個snippet
之後我們可以在後台的snippet選項新增他
接著同樣的,因為更新了Model
要做makemigrations和migrate
python manage.py makemigrations
python manage.py migrate
接著打開後台,點開左邊的snippet
會有一個Blog Categories

點進去後點選Add blog cateogry

就會看到新增的介面

新增完過後
接著我們還要更改BlogPage
content_panels = Page.content_panels + [
        MultiFieldPanel([
            FieldPanel('date'),
            FieldPanel('categories', widget=forms.CheckboxSelectMultiple),
        ], heading="Blog information"),
        FieldPanel('intro'),
        FieldPanel('body'),
    ]
新增FieldPanel('categories', widget=forms.CheckboxSelectMultiple)把category加到選項中
接著打開新增BlogPage的頁面
就可以在Blog Information那一個block
看到Categories的選項了
