实现django admin后台到xadmin后台的转变
虽然不做前端,还是喜欢好看的东西~。~
之前同事估计也是功能实现没空管这个后台,前段时间闲的,稍微改了下外貌,前后对比下:
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后台的转变的更多相关文章
- python3.4下django集成使用xadmin后台
环境:window7 x64.python3.4.django1.10 一.pip install xadmin安装报错 1.使用pip install xadmin命令安装可能报如下错误: 2.解决 ...
- 解决了好几天的关于django xadmin后台增加链接并执行函数的问题
由于xadmin后台封装的完整性,想要在后台做一些改动对于新手来说还是有点困难,目前解决的第一个问题: 在admin后台增加链接,使其改变上级签收状态 如图 点击签收按钮之后,改变其状态 代码展示: ...
- Django 后台管理xadmin
一. xadmin的使用 后台管理在开发中可以给我们提供很大的便利,django自带了一个后台管理admin,不过还有一个xadmin比django自带的好用一些,功能更加强大,为模型提供了版本控制, ...
- 第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明
第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明 设置后台列表页面可以直接修改字段内容 在当前APP里的adminx.py文件里的 ...
- 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置
第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置 设置后台某个字段的排序规则 在当前APP里的adminx.py文件里的数据表管理器里设置 order ...
- 第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理
第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理 将一个app下的models数据库表注册到xadmin后台管理 重点 ...
- 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的后台搜索时报错
在使用django admin的后台搜索时报错 百度说在search_fields中定义了非字符串字段,最后发现author引用了外键 解决办法: 有外健时应写成: 本表外键字段__外键所在表所需要查 ...
随机推荐
- angular7 + d3 显示svg
汇总一些之前没有注意到的问题 总体思路: app只是显示svg为主,接收后端推送的数据改变,显示变化后的svg. 因此,只用d3的数据绑定更新组件里<svg></svg>节点. ...
- python的try finally (还真不简单)
https://www.cnblogs.com/cotton/p/3785999.html def f(): try: print 1 return 1 finally: print 0 return ...
- MYSQL去除"/r/n"
#去除回车符号/r/n UPDATE t_week_power_line_loss SET `line_loss_rate` = REPLACE( REPLACE( `line_loss_rate` ...
- h5 audio进度条
h5 audio 播放进度条 效果图: html部分: <div class="audiojindu"> <div class="playcontrol ...
- css的table布局
1.table中对tr设置margin-top是没有作用的.
- DNA sequence open reading frames (ORFs) | DNA序列的开放阅读框ORF预测
常见的ORF预测工具 Open Reading Frame Finder- NCBI ORF Finder - SMS OrfPredictor - YSU 基本概念 开放阅读框(英语:Open r ...
- ListView的简单使用--Android
1.本例实现效果图 2.主要是activity_main.xml(布局文件)和Activity类文件,实现过程比较简单,直接附源码了哈! activity_main.xml: <?xml ver ...
- G711编解码
http://blog.csdn.net/rightorwrong/article/details/4209467 搞语音对讲几天了,播放时声音干扰太大了.拖得时间久有两个原因: 1.每次采样的位数这 ...
- HDOJ 1023 Train Problem II
考虑第1个火车出站的时刻,从1到n都有可能,如果它是第i个出栈,那么前面有规模为i-1的子问题,后面有规模为n-i的子问题.累加.
- Confluence 6 配置边栏
如果你具有空间的管理员权限,你可以对空间的变量进行自定义,让你的空间具有自己的空间标识(logo),修改显示的继承关系和在空间中添加快捷方式以帮助用户在空间中进行快速导航. 希望开始配置空间边栏,选择 ...