Django admin美化插件suit应用[原创]
前言
由于比较懒,自己弄了一个用户验证,没有自己写后台,用了django自带的user认证,并通过admin直接进行管理,但默认的admin并不漂亮,于是使用了这个django-suit插件,效果对比一下。
我用的是django-1.9.9它的admin是这样的。老版本的django admin长的更丑。
使用了suit之后的admin是这样的。
清凉了很多吧,现在开始搞它。
基础环境
- 我的环境
python: 2.7.10
django: 1.9.9 - 安装
pip install django-suit # 安装完毕了
配置部分
表结构
使用了自带的user,由于要添加一个字段,所以做了OneToOneField
models.pyfrom django.db import models
from django.contrib.auth.models import User, Group class UserProfile(models.Model):
user = models.OneToOneField(User)
name = models.CharField(u'姓名', max_length=32, blank=True, null=False) class Meta:
verbose_name = u'用户详情'
verbose_name_plural = u"用户详情"settings.py设置
INSTALLED_APPS = [
'suit', # 添加suit支持
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'web_sso',
]
......
LANGUAGE_CODE = 'zh-Hans' # 设置成中文,老版本django使用'zh_CN'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = False # 注意是False 配合下边时间格式
USE_TZ = False # 如果只是内部使用的系统,这行建议为false,不然会有时区问题
DATETIME_FORMAT = 'Y-m-d H:i:s' # suit在admin里设置时间的一个小bug。需要把时间格式指定一下
DATE_FORMAT = 'Y-m-d'
......
SUIT_CONFIG = { # suit页面配置
'ADMIN_NAME': '统一认证平台', #登录界面提示
'LIST_PER_PAGE': 20,
'MENU': ({'label': u'用户管理', 'app': 'web_sso', 'models': ('web_sso.MyUser', 'auth.Group', 'web_sso.User_ex')}, #每一个字典表示左侧菜单的一栏
# {'label': u'SQL管理', 'app': 'web_sso', 'models': ('web_sso.Sql', 'web_sso.PreSql', 'web_sso.Direction')}, # 可以是多个字典
),
# label表示name,app表示上边的install的app,models表示用了哪些models
}admin.py配置
这里只介绍一些最基础的admin的配置,详细可以参考django book的admin部分,后续的定制化admin部分请参考我后边的博文,将对admin进行较为深度的改造以便较适应复杂的需求。from django.contrib import admin
from web_sql import models class UserProfileAdmin(admin.ModelAdmin):
list_display = ('user', 'name', 'get_email', 'get_is_active') # 定义admin总览里每行的显示信息,由于email是在userprofile的外键user表中,所以需要特殊返回,注意这个字段不能用user__email的形式
search_fields = ('user__username', 'name') # 定义搜索框以哪些字段可以搜索,因为username是在user表中,所以用user__username的形式,这里需要注意下,不能直接用user表名,要用字段名,表名__字段名
list_filter = ('user__groups', 'user__is_active') #传入的需要是列表,设定过滤列表 def get_email(self, obj): # 定义这个函数是由于email是在userprofile表的外键表user里,所以需要单独return一下
return obj.user.email
get_email.short_description = 'Email' #list展示时候显示的title
get_email.admin_order_field = 'user__email' #指定排序字段 def get_is_active(self, obj):
return obj.user.is_active
get_is_active.short_description = '有效'
get_is_active.admin_order_field = 'user__is_active' admin.site.register(models.UserProfile, UserProfileAdmin) # 引用的固定格式,注册的model和对应的Admin,Admin放在后边,同样还有noregister方法:比如admin.site.noregister(Group),把group这个表在admin中去掉(默认user和group都是注册到admin中的)其他admin小技巧,admin自定义js或css,以实现一些自己想要的效果
admin.py
class DirectionAdmin(admin.ModelAdmin):
list_display = ('describe', 'db_name') class Media:
js = ('js/my_own_admin.js',)
css = {
'all': ('css/admin/my_own_admin.css',)
}
admin.site.register(models.Direction, DirectionAdmin)
# 然后把对应的js或css文件写入到static下边的指定文件里吧,运行admin的页面会额外引用你自己的css和js文件效果展示如下
结语
先写到这里,其实除了美化,admin还可以做很多事情,但是由于都在django的源码里,可定制化不如自己写的后台那么灵活,但也是可以定制的,定制的方法,请参考我后边的文章。Django admin定制化,User字段扩展[原创]
Django admin美化插件suit应用[原创]的更多相关文章
- Django admin美化插件suit
Django Suit 效果 使用前django页面 使用后django页面 安装 官方文档 http://django-suit.readthedocs.io/en/develop/index.ht ...
- django admin后台插件:django-suit入门
去年9月底开始用django来做公司内部项目,开始对django有了一些了解,感觉django真的蛮强大的(也有很多人推荐flask,将来有空的话我会试试).今天的话只是介绍一个小东西,django管 ...
- django中的django admin插件
一.django admin前言 1.admin的作用 为了方便后台开发者快速的部署测试环境,于是就产生了admin,admin主要是操作models中的类从而实现对数据库中的数据增删改查的操作. 2 ...
- Django Admin 简单部署上线
前言 打算为公司弄一个管理公用密码的平台,由于比较懒,就选择使用Django admin,默认的admin并不漂亮,于是我使用了这个django-suit插件来美化 如图: 是不是比原来的漂亮多了. ...
- Django Admin的相关知识
一.面向对象复习 1.类的继承 class Base(object): def __init__(self,val): self.val = val def func(self): self.test ...
- Django【第28篇】:Django Admin的相关知识
Django Admin的相关知识 一.面向对象复习 1.类的继承 class Base(object): def __init__(self,val): self.val = val def fun ...
- 给Django Admin添加验证码和多次登录尝试限制
Django自带的Admin很好用,但是放到生产环境总还差了点什么= = 看看admin的介绍: Django奉行Python的内置电池哲学.它自带了一系列在Web开发中用于解决常见问题或需求的额外的 ...
- Django admin 权威指南(一)
版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...
- jQuery下拉框扩展和美化插件Chosen
Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的.很长的select选择框变的更好看.更方便.不仅如此,它更扩展了select,增加了自动筛选的功能.它可对列表进行分组, ...
随机推荐
- Dreamweaver 扩展开发:C-level extensibility and the JavaScript interpreter
The C code in your library must interact with the Dreamweaver JavaScript interpreter at the followin ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(70)-微信公众平台开发-成为开发者
系列目录 前言: 一.阅读这段系列之前,你必须花半天时间大致阅读微信公众平台的API文档,我尽量以简短快速的语言与大家分享一个过程 二.借助微信公众平台SDK Senparc.Weixin for C ...
- 缓存、队列(Memcached、redis、RabbitMQ)
本章内容: Memcached 简介.安装.使用 Python 操作 Memcached 天生支持集群 redis 简介.安装.使用.实例 Python 操作 Redis String.Hash.Li ...
- 如何为你的微信小程序体积瘦身?
众所周知,微信小程序在发布的时候,对提交的代码有1M大小的限制!所以,如果你正在写一个功能稍微复杂一点的小程序,就必须得时刻小心注意你的代码是不是快触及这个底线了. 在设计一个小程序之初,我们就需要重 ...
- BPM嵌入式流程解决方案分享
一.需求分析由于企业业务的独特性或者企业高层独特的管理思想,很多客户选择了自行开发业务系统的方式来实现独有的竞争力. 这类信息系统通常经过了多年的开发,伴随着企业的发展一直在不断优化,与企业的业务非常 ...
- 微信开发笔记(accesstoken)
access_token分两种 一种是公众号权限获取用,调用cgi-bin接口 ,此种token一个公众号同时只有一个,用这一个就够了. 服务器最好缓存. 用这个token前提是用户关注了此公众号. ...
- keepalived 知识备注
keepalived可用于配置nginx/lvs等负载均衡设备的双机热备. keepalived基于VRRP协议,简单的说就是两个物理路由节点(一主一备),虚拟成一个逻辑上的路由节点. 实际消息的路由 ...
- Spring Boot -- 配置切换指南
一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...
- ABP框架 - 日志
文档目录 本节内容: 服务端 获取Logger(记录器) Logger的基类 配置 Abp.Castle.Log4Net 包 客户端 服务端 ABP使用Castle Windsor的日志记录工具,它可 ...
- 配置hibernate,Struts。文件
hibernate文件配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernat ...