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

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

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. vue中兄弟组件间通讯

    vue2.0中兄弟组件间的通讯是通过eventBus(事件发布订阅)实现的. eventBus.js import Vue from 'vue' const eventBus = new Vue() ...

  2. vue-cli中理不清的assetsSubDirectory 和 assetsPublicPath

    背景 一般情况下,我们借用 vue-cli之力安装好所有依赖后,我们就可以愉快的板砖了.但是也经常会遇到一写问题,比如assetsSubDirectory 和 assetsPublicPath两个兄弟 ...

  3. Android Studio NDK开发-JNI调用Java方法

    相对于NDK来说SDK里面有更多API可以调用,有时候我们在做NDK开发的时候,需要在JNI直接Java中的方法和变量,比如callback,系统信息等.... 如何在JNI中调用Java方法呢?就需 ...

  4. git 放弃本地修改

     本文以转移至本人的个人博客,请多多关注! 如果在修改时发现修改错误,而要放弃本地修改时, 一, 未使用 git add 缓存代码时. 可以使用 git checkout -- filepathnam ...

  5. 雇佣K个工人的最小费用 Minimum Cost to Hire K Workers

    2018-10-06 20:17:30 问题描述: 问题求解: 问题规模是10000,已经基本说明是O(nlogn)复杂度的算法,这个复杂度最常见的就是排序算法了,本题确实是使用排序算法来进行进行求解 ...

  6. python读取配置文件&&简单封装

    之前有做过把爬虫数据写到数据库中的练习,这次想把数据库信息抽离到一个ini配置文件中,这样做的好处在于可以在配置文件中添加多个数据库,方便切换(另外配置文件也可以添加诸如邮箱.url等信息) 1.co ...

  7. tchart example

    Random random = new Random(); // Color SeriesColor; int SeriesIndex=0; tChart1.Series.Clear(); Steem ...

  8. 判断一个点在多边形的内部C++

    /* 原理: 将测试点的Y坐标与多边形的每一个点进行比较, ** 会得到测试点所在的行与多边形边的所有交点. ** 如果测试点的两边点的个数都是奇数个, ** 则该测试点在多边形内,否则在多边形外. ...

  9. 20181013xlVba年级成绩报表

    Public Sub 高一成绩报表() Application.ScreenUpdating = False Application.DisplayAlerts = False Application ...

  10. 02linux 基本命令

    系统环境变量的设置 以nginx为例: 方式一: ~/.bash_profile  这是个人的 /etc/profile 为系统的环境变量 vim /etc/profile.d/nginx.sh #在 ...