参考教程
前言
django 后台自带的 UI 实在太丑了,要美化,调研了如下解决方案:
- xadmin。国人开发的,不支持 python3,差评!Python3 下安装各种报错。
- django suit。好看。支持 django2.0,文档小学生都能看懂 。选择!
- grappelli。不好看。
Django Suit
install
Django Suit 为了适配 Django 有许多不同的版本,导致它们的安装方式也有差异。所以安装之前一定要分清版本。
使用 pip list
查看Django 版本。
pip list|grep Django
>>> Django 1.10.6
所以我采用的是 Django Suit v2-dev
, 这个分支的官方文档
下载,pip install https://github.com/darklow/django-suit/tarball/v2
修改 my_project_app/apps.py
from suit.apps import DjangoSuitConfig
# layout这个参数决定你的网页是初始样式是垂直样式还是水平样式,可选参数为‘horizontal’或‘vertical’
class SuitConfig(DjangoSuitConfig):
layout = 'horizontal'
添加应用,注意一定要把应用放到django.contrib.admin
前面。
INSTALLED_APPS = (
...
'my_project_app.apps.SuitConfig',
'django.contrib.admin',
)
配置
可以把 代码 贴到 your_application/apps.py 中的对应位置,体验一下 Django suit 的配置。
class SuitConfig(DjangoSuitConfig):
# 布局,垂直'vertical'还是水平'horizontal'
layout = 'vertical'
# 配置菜单栏
menu = (
# ParentItem 是一级标题栏。第一个参数是标题名,children 是list形式,里面放置了二级菜单。还可以传不定参数 icon,这是图标。
# ChildItem 是二级菜单栏,第一个参数是标题名。不定参数 url=(这个任务具体的函数),icon。
ParentItem('Content', children=[
ChildItem(model='demo.country'),
ChildItem(model='demo.continent'),
ChildItem(model='demo.showcase'),
ChildItem('Custom view', url='/admin/custom/'),
], icon='fa fa-leaf'),
ParentItem('Integrations', children=[
ChildItem(model='demo.city'),
]),
ParentItem('用户管理', children=[
ChildItem(model='auth.user'),
ChildItem('User groups', 'auth.group'),
], icon='fa fa-users'),
ParentItem('账号安全', children=[
ChildItem('Password change', url='admin:password_change'),
ChildItem('Open Google', url='http://google.com', target_blank=True),
], align_right=True, icon='fa fa-cog'),
)
def ready(self):
super(SuitConfig, self).ready()
# DO NOT COPY FOLLOWING LINE
# It is only to prevent updating last_login in DB for demo app
self.prevent_user_last_login()
def prevent_user_last_login(self):
"""
Disconnect last login signal
"""
from django.contrib.auth import user_logged_in
from django.contrib.auth.models import update_last_login
user_logged_in.disconnect(update_last_login)
网友评论