這篇文章中會提到一些簡單的客製化內容
比如我們在後台管理介面中,想看到什麼
或是不想看到什麼。

這一篇應該是Django教學筆記的最後一篇
除非我突然去把一年前的作業翻出來再看一次
不然我研討會的程式還沒寫完
已經要開天窗了

客製化設計

修改css

  1. 在polls底下建立一個名為static的資料夾,在static下再建一個polls的資料夾,接著創建style.css

  2. index.html中引入css

  3. 效果

    修改admin介面的外觀與顯示內容

  4. 修改admin.py之前

  5. 修改之後

  6. 原本的Choice選項若需要增加需要透過FK-Question來與問題連結方可新增

  7. 修改之後在Question裡面同時可新增Choice(inlines)

  8. 但是如果Choice有很多欄位的話會使得易讀性下降,因此我們只需修改ChoiceInline就可以讓畫面變成下圖那樣

  9. 預設Django的List頁面只顯示出了question_text

  10. admin.py裡用list_display列出想要顯示出來的欄位

  11. Django admin內建的排序無法對布林值排序,因此我們在model.py裡對Question進行修改,當我們點選Published recently?的欄位名稱進行排序時,他是依照pub_date的內容進行排序

    Was_published_recently.boolean 設為False

  12. admin.py的QuestionAdmin裡加上篩選器

  13. 加上Search Field,功能就跟SQL中查詢的LIKE功能一樣
    search_fields = ['question_text']

  14. 這個屬於管理後台的部分當然不能使用者僅靠輸入網址就進入
    因此我們在polls/template/下再創建一個admin的資料夾,並新增一個base_site.html的檔案

  15. 最後127.0.0.1:8000/admin進入的頁面就不會直接是後台

另外因應老師的作業要求,需要有查詢功能
原本應該是要對資料庫進行SELECT之類的搜索
但在Django中有很強的全文檢索工具Haystack
所以當初就稍微的小小偷懶了一下,用了這份工具
有興趣的話大家也可以參考。