虽然不做前端,还是喜欢好看的东西~。~

之前同事估计也是功能实现没空管这个后台,前段时间闲的,稍微改了下外貌,前后对比下:

Python3.5+Django1.9.7+Xadmin0.6.1

步骤如下:

  1.从git下下载安装包https://github.com/sshwsfc/xadmin,先在项目根目录下创建extra_apps,解压下载的包xadmin,把xadmin文件夹放到extra_apps下,如图:

  


  2.在settings.py中更改这两处:INSTALLED_APPS中加入xadmin和crispy_forms,配置extra_apps路径,汉化

import sys
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

  


  3.配置主路由

  


  4.在app下创建adminx.py,将原本的admin.py里的代码复制到adminx.py里,进行以下修改:

  图标库地址:http://www.fontawesome.com.cn/faicons/

from django.contrib import admin
from .models import Organization # Register your models here.
@admin.register(Organization)
class OrgAdmin(admin.ModelAdmin):
list_display = ('alias', 'name') #改为
import xadmin
from xadmin import views
from .models import Organization # Register your models here.
class OrgAdmin(object):
list_display = ['alias', 'name']
model_icon = 'fa fa-sitemap' #小图标
xadmin.site.register(Organization, OrgAdmin)

  


  5.设置主题,很多炫黑的颜色

# adminx.py文件增加以下几行
class BaseSetting(object):
enable_themes = True
use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting)

  


  6.修改应用下apps.py文件,设置多表收缩和一级菜单名称(数据管理),设置头部和尾部

# apps.py修改为:
# -*- coding: utf-8 -*-
from django.apps import AppConfig class SmsConfig(AppConfig):
name = 'sms'
# 多表收缩时的菜单名称
verbose_name = u'数据管理' #app下__init__.py文件增加一行:
default_app_config = "yourapp.apps.SmsConfig" # adminx.py增加以下几行:
class GlobalSetting(object):
"""设置头部和尾部"""
site_title = "短信后台管理系统"
site_footer = "http://smsweb.corp.ncfgroup.com/xadmin"
menu_style = "accordion"
xadmin.site.register(views.CommAdminView, GlobalSetting)

  


  7.设置后台登陆session有效期为一天过期重新登陆,默认是没有过期时间

# extra_apps/xadmin/views/base.py
class BaseAdminView(BaseAdminObject, View):
""" Base Admin view, support some comm attrs.""" base_template = 'xadmin/base.html'
need_site_permission = True def __init__(self, request, *args, **kwargs):
self.request = request
self.request_method = request.method.lower()
self.user = request.user self.base_plugins = [p(self) for p in getattr(self,
"plugin_classes", [])]
# request.session.set_expiry(datetime.timedelta(days=1))
# 设置一天后过期 增加下面一行
request.session.set_expiry(86400)
self.args = args
self.kwargs = kwargs
self.init_plugin(*args, **kwargs)
self.init_request(*args, **kwargs)

  


  8.取消关联编辑,修改adminx.py文件

 修改后:

class SMSLogAdmin(ReadonlyAdmin):
list_display = ['id', 'my_mobile', 'status', 'req_time', 'ret_time', 'account', 'my_tally', 'my_price']
list_filter = ['account', 'status', 'req_time',]
model_icon = 'fa fa-commenting'
# 添加下面这行,关闭关联编辑
show_all_rel_details = False
xadmin.site.register(SMSLog, SMSLogAdmin)
class AccountAdmin(object):
list_display = ['username', 'organization', 'signature',]
model_icon = 'fa fa-address-card'
# 快捷编辑指定字段
show_detail_fields = ['organization', ]
xadmin.site.register(Account, AccountAdmin)

实现django admin后台到xadmin后台的转变的更多相关文章

  1. python3.4下django集成使用xadmin后台

    环境:window7 x64.python3.4.django1.10 一.pip install xadmin安装报错 1.使用pip install xadmin命令安装可能报如下错误: 2.解决 ...

  2. 解决了好几天的关于django xadmin后台增加链接并执行函数的问题

    由于xadmin后台封装的完整性,想要在后台做一些改动对于新手来说还是有点困难,目前解决的第一个问题: 在admin后台增加链接,使其改变上级签收状态 如图 点击签收按钮之后,改变其状态 代码展示: ...

  3. Django 后台管理xadmin

    一. xadmin的使用 后台管理在开发中可以给我们提供很大的便利,django自带了一个后台管理admin,不过还有一个xadmin比django自带的好用一些,功能更加强大,为模型提供了版本控制, ...

  4. 第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明

    第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明 设置后台列表页面可以直接修改字段内容 在当前APP里的adminx.py文件里的 ...

  5. 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置

    第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置 设置后台某个字段的排序规则 在当前APP里的adminx.py文件里的数据表管理器里设置 order ...

  6. 第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理

    第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理 将一个app下的models数据库表注册到xadmin后台管理 重点 ...

  7. django博客项目6:Django Admin 后台发布文章

    在此之前我们完成了 Django 博客首页视图的编写,我们希望首页展示发布的博客文章列表,但是它却抱怨:暂时还没有发布的文章!如它所言,我们确实还没有发布任何文章,本节我们将使用 Django 自带的 ...

  8. Django Admin后台添加用户时出现报错:1452

    如果在使用Django Admin后台添加用户时出现报错: (1452, 'Cannot add or update a child row: a foreign key constraint fai ...

  9. 在使用django admin的后台搜索时报错

    在使用django admin的后台搜索时报错 百度说在search_fields中定义了非字符串字段,最后发现author引用了外键 解决办法: 有外健时应写成: 本表外键字段__外键所在表所需要查 ...

随机推荐

  1. DAY4 if、while和for

    一.if 判断 语法一: if 条件: # 以下是上一条if 的子代码块 print(子代码1) print(子代码2) print(子代码3) if 运行完之后会执行代码下方 上一缩进级 的代码块 ...

  2. Can't push you anymore...

    为什么我们不趁着年轻去冒险? 等我们准备好,也许都已经被生活冲淡了激情. Go to different places,to meet different people. To try, to fin ...

  3. Learn Python3 the hard way 第一天总结 命令行(1)

    附录-命令行快速入门(1) command line interface 简称 CLI ,可以在mac OS 上通过一些输入进行一些操作. 1如何在迷路后怎样回家 命令: pwd:打印工作目录cd 更 ...

  4. Lab 3-1

    Analyze the malware found in the file Lab03-01.exe using basic dynamic analysis tools. Questions and ...

  5. change_bit 按位取反

    int change_bit(int nr, void * addr){    int oldbit;    //1.第nr位取反, 原nr位入CF    //2. sbbl带借位减(把源操作数和标志 ...

  6. android--------自定义控件 之 ViewGroup

    前面几篇讲了自定义控件的组合控件,地址:http://www.cnblogs.com/zhangqie/p/8985612.html 今天这篇博文主要来说说 自定义控件的 ViewGroup. 什么是 ...

  7. 纯js无缝滚动

    HTML代码 <!--父容器要使用overflow: hidden;--> <div id="imgsList" style="height:150px ...

  8. JS中循环逻辑和判断逻辑的使用实例

    源代码见: https://github.com/Embrace830/JSExample &&和||的理解 a || b:如果a是true,那么b不管是true还是false,都返回 ...

  9. vue 关于npm run build 的小问题

    vue项目使用npm run build命令进行打包操作,打包之后试运行报错,报错为: 且命令行警告信息为: 解决办法: 找到项目目录下的config文件夹里的index.js文件,将build对象下 ...

  10. PHP 进阶之路 - 深入理解 FastCGI 协议以及在 PHP 中的实现

    在讨论 FastCGI 之前,不得不说传统的 CGI 的工作原理,同时应该大概了解 CGI 1.1 协议 传统 CGI 工作原理分析 客户端访问某个 URL 地址之后,通过 GET/POST/PUT ...