Django Grappelli主题美化管理页面

Django 自带的站点管理很方便但不太好看,使用 Grappelli 主题可以让站点管理稍微好看一点

版本信息

  • Python 3.9.12
  • Django 4.0.4
  • django-grappelli 3.0.3

创建管理用户

如果没有管理用户的话:

1
python manage.py createsuperuser

原始站点管理页面

django-grappelli_1

安装

1
pip3 install django-grappelli -i https://pypi.mirrors.ustc.edu.cn/simple/

添加应用

打开 ./my_project/settings.py 文件,将 grappelli 放在 django.contrib.admin 之前:

1
2
3
4
INSTALLED_APPS = (
'grappelli',
'django.contrib.admin',
)

添加URL路由

打开 ./my_project/urls.py 文件,添加:

1
2
3
4
urlpatterns = [
path('admin/', admin.site.urls),
+ path('grappelli/', include('grappelli.urls'))
]

添加上下文处理器

这是仪表板和切换用户功能需要

打开 ./my_project/settings.py 文件,添加:

1
2
3
4
5
6
7
8
9
10
11
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
...
+ 'django.template.context_processors.request',
],
},
},
]

收集媒体文件

1
python manage.py collectstatic

出现报错:

1
django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path

解决方法是在 ./my_project/settings.py 文件里添加:

1
2
3
import os

STATIC_ROOT = os.path.join(BASE_DIR, "static")

重新执行收集命令后会在当前目录下生成 static 目录

测试

启动本地服务:

1
python manage.py runserver

本地访问 http://127.0.0.1:8000/admin/
django-grappelli_2

官方地址