iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 28
0
Modern Web

加速你的 Django 網站開發 - Django 的好用套件系列 第 28

28. Grappelli

Django 本身就內建了強大的管理介面 Admin,寫好 model ,透過簡單的註冊,就可以有一個可以管理、操作資料的介面,非常的方便。這個介面講求實用,所以並不花俏,對開發者來說,總是會想要讓介面好看一點,所以就有了 Grappelli 或是 django-admin-bootstrap 這類的輔助套件出現。

專案網址:https://grappelliproject.com/

安裝

poetry add django-grappelli

設定與使用

安裝好以後,接下來就是設定

# settings
INSTALLED_APPS = [
    # ... other apps
    'grappelli',
    'django.contrib.admin',
    # ... other apps
]

TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'context_processors': [
                ...
                'django.template.context_processors.request',
                ...
            ],
        },
    },
]

在 settings 的 INSTALLED_APPS 加入 'grappelli' ,還有確定 templates 的 context_processors 裡有 'django.template.context_processors.request'。

這裡要特別注意的一點是,grappelli 必須在 django.contrib.admin 之前,否則進入 admin 介面時,仍會看到原來的 django admin 介面。

然後調整 urls:

# urls.py
urlpatterns = [
    # ... other urls
    path('grappelli/', include('grappelli.urls')), # grappelli URLS
]

這兩邊都修改好之後,別忘了執行 collectstatic

poetry run python manage.py collectstatic

至此就大功告成了,你可以執行 runserver,進入 admin 介面,看看是否生效。

https://ithelp.ithome.com.tw/upload/images/20200928/20012434DfUkS97Z9y.png

調整

Grappelli 可以調整的設定有這些:

  • GRAPPELLI_ADMIN_TITLE:管理介面的頁面標題
  • GRAPPELLI_AUTOCOMPLETE_LIMIT:自動完成顯示的項目數量
  • GRAPPELLI_AUTOCOMPLETE_SEARCH_FIELDS:自動完成的搜索欄位
  • GRAPPELLI_SWITCH_USER:啟用「切換使用者」的功能
  • GRAPPELLI_SWITCH_USER_ORIGINAL / GRAPPELLI_SWITCH_USER_TARGET :這兩者都是函式,決定使用者是否可以執行功能。
  • GRAPPELLI_CLEAN_INPUT_TYPES:是否避免使用 HTML5 input type 。

如果你對於管理介面裡的表單輸入欄位不滿意,也可以參考 Grappelli 的 「Customization」來做出調整。

結語

Grappelli 還有提供 Dashboard,Dashboard 是簡化版的管理介面,而且可以自訂 app / model 列表的顯示,這部份就留待有時間再來細究。

如果你想做出不一樣的管理介面,Grappelli 是個很好的輔助套件,裝上去以後,整個會煥然一新,認不出來這是 Django 的管理介面。


上一篇
27. django-authtools
下一篇
29. bootstrap-admin
系列文
加速你的 Django 網站開發 - Django 的好用套件30

尚未有邦友留言

立即登入留言