zoukankan      html  css  js  c++  java
  • 实现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)
    实践出真知~
  • 相关阅读:
    css 模块化
    zookeeper集群-solrcloud集群
    Ansible
    Haproxy
    Saltstack数据系统
    Saltstack入门
    DNS(bind)添加A、CNAME、MX、PTR记录、智能DNS(ACL)
    主从同步DNS(BIND)
    单台DNS服务器搭建(BIND)
    python2.7多线程的批量操作远程服务器
  • 原文地址:https://www.cnblogs.com/NolaLi/p/9456864.html
Copyright © 2011-2022 走看看