iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

Django CMS框架 - Wagtail筆記系列 第 5

[Day 5] 使用Category來對Blog_page進行分類

  • 分享至 

  • xImage
  •  

新增Category

首先在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

https://ithelp.ithome.com.tw/upload/images/20190919/20119874DgZwxaXnB1.png

點進去後點選Add blog cateogry

https://ithelp.ithome.com.tw/upload/images/20190919/20119874NxrRlcrXC4.png

就會看到新增的介面

https://ithelp.ithome.com.tw/upload/images/20190919/201198745TuodKBpUX.png

新增完過後

接著我們還要更改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的選項了

https://ithelp.ithome.com.tw/upload/images/20190919/20119874n92IxzTeA6.png


上一篇
[Day 4] 建立自訂義的頁面
下一篇
[Day 6] 使用Tag來標記你的Page
系列文
Django CMS框架 - Wagtail筆記7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言