7 – 在 Django Admin 後臺釋出文章

追夢人物發表於2019-02-28

在此之前我們完成了 Django 部落格首頁檢視的編寫,我們希望首頁展示釋出的部落格文章列表,但是它卻抱怨:暫時還沒有釋出的文章!如它所言,我們確實還沒有釋出任何文章,本節我們將使用 Django 自帶的 Admin 後臺來發布我們的部落格文章。

建立 Admin 後臺管理員賬戶

要想進入Django Admin 後臺,首先需要建立一個超級管理員賬戶。我們在 讓 Django 完成翻譯:遷移資料庫 中已經建立了一個後臺賬戶,但如果你沒有按照前面的步驟建立賬戶的話,可以執行 python manage.py createsuperuser 命令新建一個:

python manage.py createsuperuser

Username (leave blank to use `zmrenwu@163.com`):  admin
Email address:  admin@example.com
Warning: Password input may be echoed.
Password:  ******
Warning: Password input may be echoed.
Password (again):  ******
Superuser created successfully.複製程式碼

注意:在命令列輸入密碼時可能不會顯示輸入的字元,不要以為鍵盤壞了,照正常的方式輸入密碼即可。

在 Admin 後臺註冊模型

要在後臺註冊我們自己建立的幾個模型,這樣 Django Admin 才能知道它們的存在,註冊非常簡單,只需要在 blogadmin.py 中加入下面的程式碼:

blog/admin.py

from django.contrib import admin
from .models import Post, Category, Tag

admin.site.register(Post)
admin.site.register(Category)
admin.site.register(Tag)複製程式碼

啟用虛擬環境,執行開發伺服器,訪問 http://127.0.0.1:8000/admin/ ,就進入了到了Django Admin 後臺登入頁面,輸入剛才建立的管理員賬戶密碼就可以登入到後臺了。

7 – 在 Django Admin 後臺釋出文章
Django Admin 後臺

可以看到我們剛才註冊的三個模型了,點選 Posts 後面的增加按鈕,將進入新增 Post 的頁面,也就是新增部落格文章。然後在相關的地方輸入一些測試用的內容,增加完後點選儲存,這樣文章就新增完畢了,你也可以多新增幾篇看看效果。注意每篇文章必須有一個分類,在新增文章時你可以選擇已有分類。如果資料庫中還沒有分類,在選擇分類時點選 Category 後面的 + 按鈕新增一個分類即可。

7 – 在 Django Admin 後臺釋出文章
Django Admin 後臺新增文章

你可能想往文章內容中新增圖片,但目前來說還做不到。在支援 Markdown 語法部分中將介紹如何在文章中插入圖片的方法。

訪問 http://127.0.0.1:8000/ 首頁,你就可以看到你新增的文章列表了,下面是我所在環境的效果圖:

7 – 在 Django Admin 後臺釋出文章
部落格首頁顯示的文章列表

定製 Admin 後臺

在 admin post 列表頁面,我們只看到了文章的標題,但是我們希望它顯示更加詳細的資訊,這需要我們來定製 Admin 了,在 admin.py 新增如下程式碼:

blog/admin.py

from django.contrib import admin
from .models import Post, Category, Tag

class PostAdmin(admin.ModelAdmin):
    list_display = [`title`, `created_time`, `modified_time`, `category`, `author`]

# 把新增的 PostAdmin 也註冊進來
admin.site.register(Post, PostAdmin)
admin.site.register(Category)
admin.site.register(Tag)複製程式碼

由於如何定製 Admin 後臺不是本教程的重點,這裡只是為了簡單地到達期望效果,因此不再對上述程式碼做過多解釋。

重新整理 Admin Post 列表頁面,可以看到顯示的效果好多了。

7 – 在 Django Admin 後臺釋出文章
定製後的 Admin 文章列表頁

總結

本章節的程式碼位於:Step7: publish posts using django admin

如果遇到問題,請通過下面的方式尋求幫助。

相關文章