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

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

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)

 

posted on 2018-08-13 15:04  落叶虽美只活一世  阅读(612)  评论(0编辑  收藏  举报
Live2D