django admin后台插件:django-suit入门
去年9月底开始用django来做公司内部项目,开始对django有了一些了解,感觉django真的蛮强大的(也有很多人推荐flask,将来有空的话我会试试)。今天的话只是介绍一个小东西,django管理员后台插件:django-suit。
用过django的同学大概都知道,admin后台那个丑到爆的界面:


虽然程序猿不太那么讲究审美,但是这么吃藕的一个界面,反正搁我我是忍不了。不过呢,还好django扩展能力还是挺强的,有牛人开发出了suit这个插件。只需要简单的几步配置,就可以让admin后台变得美观许多。
那么,要怎么做呢?
首先是安装,简单粗暴的
pip install django-suit
即可。
接下来需要进行一些配置工作。
在settings.py中,INSTALLED_APPS里面第一行加入’suit’(suit必须放在'django.contrib.admin'这一行的前面,否则服务启动后admin会加载默认admin界面)。之后,如果你的django版本在1.9以下,需要加入:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP TEMPLATE_CONTEXT_PROCESSORS = TCP + (
'django.core.context_processors.request',
)
如果是1.9以上(包含1.9),需要对TEMPLATES进行修改,加入一行:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request', # <-需要这一行
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
据说suit在admin里设置时间的一个小bug。需要把时间格式指定一下
DATETIME_FORMAT = 'Y-m-d H:i:s'
DATE_FORMAT = 'Y-m-d'
最后别忘了把语言设置成中文的
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = False
USE_TZ = True
接下来要设置suit的配置字典。可以写在settings.py里面,不过我更习惯单独写成一个文件admin_settings.py:
SUIT_CONFIG = {
'ADMIN_NAME': '苹果树',
'MENU': ({'label': '用户',
'app': '用户',
'models': ('UserProfile',)},
),
# 每一个字典表示左侧菜单的一栏
# label表示name,app表示上边的install的app,models表示用了哪些models
}
当然,单独写成py文件的时候,记得在settings.py里面加上一句:
from . import admin_settings
(如果使用的是python2,直接import admin_settings即可)
接下来是models.py。因为django的admin也是使用User的,所以需要对User进行扩展:
from django.db import models
from django.contrib.auth.models import User class UserProfile(User):
cname = models.CharField("中文名称", max_length=30)
有人喜欢在扩展模型中使用OneToOneField与User建立关系,不过我觉得直接继承起来比较方便。
最后是admin.py:
from django.contrib import admin
from myapp import models class UserProfileAdmin(admin.ModelAdmin):
# 定义admin总览里每行的显示信息
list_display = ('cname', 'username', 'email')
# 定义搜索框以哪些字段可以搜索
search_fields = ('cname', 'username') # 引用的固定格式,注册的model和对应的Admin,Admin放在后边
# 同样还有noregister方法:比如admin.site.noregister(Group),把group这个表在admin中去掉(默认user和group都是注册到admin中的)
admin.site.register(models.UserProfile, UserProfileAdmin)
这个文件是在你的应用中的。
OK。大功告成,我们用
python manage.py makemigrations
python manage.py migrate
同步数据库
python manage.py createsuperuser
创建超级管理员
python manage.py runserver 127.0.0.1:8000
启动项目看看。

怎么样,这样看起来是不是就比较轻松愉快了,至少比原生的admin界面要好看吧。
其实,我用的功能还是蛮少的,只需要添加几个用户,实际上suit可以做的事情还是很多的。如果想要了解更多,可以参考一下相关文章:
# 入门文章:
http://www.cnblogs.com/caseast/p/5909248.html
# 官方文档:
http://django-suit.readthedocs.io/en/develop/
因为个人年度计划的关系,在1月份结束之前赶紧写出来一篇博客。大过年的我就不再废话了。
django admin后台插件:django-suit入门的更多相关文章
- django admin后台的简单使用
创建自己的model.py文件 from django.db import models from django.contrib.auth.models import ( BaseUserManage ...
- django博客项目6:Django Admin 后台发布文章
在此之前我们完成了 Django 博客首页视图的编写,我们希望首页展示发布的博客文章列表,但是它却抱怨:暂时还没有发布的文章!如它所言,我们确实还没有发布任何文章,本节我们将使用 Django 自带的 ...
- Django Admin后台添加用户时出现报错:1452
如果在使用Django Admin后台添加用户时出现报错: (1452, 'Cannot add or update a child row: a foreign key constraint fai ...
- Django admin美化插件suit应用[原创]
前言 由于比较懒,自己弄了一个用户验证,没有自己写后台,用了django自带的user认证,并通过admin直接进行管理,但默认的admin并不漂亮,于是使用了这个django-suit插件,效果对比 ...
- Django admin美化插件suit
Django Suit 效果 使用前django页面 使用后django页面 安装 官方文档 http://django-suit.readthedocs.io/en/develop/index.ht ...
- Django admin 后台管理
在App 文件夹下的 admin.py 文件中写入 from django.contrib import admin from app名 import models admin.site.site_h ...
- Django admin后台操作
Django提供自动后台管理应用,简称admin. admin是一个应用,每个Web站点都需要它.admin通过让开发者可以在完成完整的UI之前验证处理数据的代码. 设置admin 打开setting ...
- Django Admin后台管理模块的使用
Admin后台管理模块的使用 Django的管理员模块是Django的标准库django.contrib的一部分.这个包还包括其它一些实用的模块: django.contrib.auth django ...
- Django - admin后台、auth权限
admin后台 一.创建一个管理员用户 (1).设置时区.语言(可选步骤) 打开settings.py,改成下面那样 LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'As ...
随机推荐
- WINFORM如何实现无聚焦框的Button按钮
当我们将一个button按钮设置如下属性时,总有一个聚焦框来困扰着我们 button1.FlatStyle = FlatStyle.Flat; 我们想要的效果是这样的: 但当使用了Tab切换焦点时 发 ...
- Linux 服务器 MySql的安装和网站的发布
Linux安装MySql,并配置能通过自己的电脑连接服务器的数据库 昨天安装的MySql,今天上午配置MySql能使用本机连接服务器数据库,服务器时DigitalOcean的,提供了很全面很专业的文档 ...
- groovy运算符
import java.util.regex.Matcher /** * Created by Jxy on 2018/12/20 10:29 * groovy运算符 */ /*class opera ...
- WC前的颓废——带花树
QAQ现在很不想写题解博客那就来写个算法吧QAQ... 带花树 题目 来看个题... UOJ79. 某机房里有\(n\)个OIer,其中有\(n\)个男生,\(0\)个女生.现在他们要两两配对. 有\ ...
- 已有Web项目添加Maven支持
IDE:MyEclipse 当我们在现有的Web开发项目中集成 Maven 的时候,需要修改以下几个地方: 1.将以下代码拷贝到工程根路径下的 .project 文件中的 <buildSpec& ...
- Linux常见操作指令(转载)
Linux,免费开源,多用户多任务系统.基于Linux有多个版本的衍生.RedHat.Ubuntu.Debian 安装VMware或VirtualBox虚拟机.具体安装步骤,找百度. 再安装Ubunt ...
- 个人总结4-dbutils总结
昨天学习了dbutils的使用方法,简化了使用的步骤,可以使用三四步就可以写出来,queryRunner的使用方法有了简单的了解,目前可以使用dbutils实现最简单的增删改查. 今天准备学习准备写登 ...
- Ionic开发项目
hybrid app是移动开发代替原生开发完成app应用项目的一种方案,Ionic是hybrid app开发的一种选择.对ionic有兴趣可以去网上找相应的基础知识来学习了解,因为Ionic是基于An ...
- SQLServer数据库执行较大的脚本
当我们需要在SQLServer数据库里面执行一个比较大的文件(比如2GB)时,会发现数据库根本无法打开该脚本文件,原因是因为查询分析器只能执行100M以内的文件,所以脚本过大就会造成内存溢出.下面是具 ...
- Java中执行.exe文件
public static void main(String args[]){ try { String command ="notepad"; // 笔记本 Process ch ...