虽然不做前端,还是喜欢好看的东西~。~
之前同事估计也是功能实现没空管这个后台,前段时间闲的,稍微改了下外貌,前后对比下:
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)
实践出真知~