iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0

今日大綱: 需要擴充 blog/model.py,讓 modle 有 post。並進行 makemigrations 和 migrate。然

擴充 blog/model.py

from django.db import models
from wagtail.models import Page
from wagtail.fields import RichTextField
from wagtail.admin.panels import FieldPanel

# add this: # 加上這一行
from wagtail.search import index

# 加上這個 class, BlogPage(Page)

class BlogPage(Page):
    date = models.DateField("Post date")
    intro = models.CharField(max_length=250)
    body = RichTextField(blank=True)

    search_fields = Page.search_fields + [
        index.SearchField('intro'),
        index.SearchField('body'),
    ]

    content_panels = Page.content_panels + [
        FieldPanel('date'),
        FieldPanel('intro'),
        FieldPanel('body'),
    ]

一定在 terminal 下 makemigrations 和 migrate

python manage.py makemigrations
python manage.py migrate

在 templates 加上 blog_page.html

新增一個檔案,在 blog/templates/blog/ 下,檔名為 blog_page.html

{% extends "base.html" %}

{% load wagtailcore_tags %}

{% block body_class %}template-blogpage{% endblock %}

{% block content %}
    <h1>{{ page.title }}</h1>
    <p class="meta">{{ page.date }}</p>

    <div class="intro">{{ page.intro }}</div>

    {{ page.body|richtext }}

    <p><a href="{{ page.get_parent.url }}">Return to blog</a></p>

{% endblock %}

寫個幾篇文章,看 blog index 有沒有運作正常

https://ithelp.ithome.com.tw/upload/images/20240919/20140622FRaWz8DyUl.png

  • 要加的 page 種類是 blog page

https://ithelp.ithome.com.tw/upload/images/20240919/20140622BDjvKYPW9V.png

  • 加完三篇後,admin panel 的樣子

https://ithelp.ithome.com.tw/upload/images/20240919/20140622GFx2Rrs5r4.png

https://ithelp.ithome.com.tw/upload/images/20240919/20140622hoPIZuRXT1.png

現在這個 web app 已經有 CMS 的最基本能力了,但和一般的網誌型網站相比,還差了很多東西。

舉例來說:

現在的 blog index page 是依 post 上的 publish date 由小到大排列,這是 sorting 的預設行為。但通常我們會優先讓最新的文章在最上面,最新的文章愈早被使用者看到。

現在的 BlogPage 並沒有上傳圖片的功能,現在的 blog 都是「純文字」的 blog。

下一篇,我們會來擴充 BlogPage 的能力,讓你的網站愈來愈豐富。


上一篇
D6 - 開始添加 blog app 在你的網站
下一篇
D8 - 擴充 BlogPage ,反轉 sort 排序,以及加上 image gallery
系列文
使用 Django 框架和 Wagtail,快速打造一個 CMS 網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言