• xadmin快速搭建一个后台管理系统


    环境:python3.5.2 ,django 2.0 ,xadmin2.0

    Firsttly,

    到 https://github.com/sshwsfc/xadmin/tree/django2上下载源码,之后把其中的xadmin目录放在项目目录中新建的extra_apps这个目录中

     

    Secondly,

    将extra_apps mark as source root ,然后在settings中将其导入到python 的搜索目录中

    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
    # 文件目录导入到搜索路径中
    sys.path.insert(0, os.path.join(BASE_DIR, "apps"))
    sys.path.insert(0, os.path.join(BASE_DIR,"extra_apps"))

    然后,install xadmin所需的第三方库

    pip3 install -r requirements.txt

    Thirdly,

    在settings.py中我们还需要导入以下几个app

    INSTALLED_APPS = [
        ......
        'xadmin',
        'crispy_forms',
        'reversion',
    ]

    Fourthly,

    在urls.py中也需要对其的路径进行下配置

    from extra_apps import xadmin
    urlpatterns = [
        #path('admin/', admin.site.urls),
        path('xadmin/', xadmin.site.urls),
    ]

     Fifthly,相关设置

    后台数据展示

    在当前apps下创建xadmin.py文件,注意只能是adminx.py文件

    class ModelObjectAdmin(object):
        
        # 排除一些不想被其他人编辑的fields,不包含在内的字段不能编辑
        fields = ('fields',)
     
        # 数据展示显示,列表中展示哪些字段信息
        list_display = [“fields”,]
    
        # 筛选(后台管理页面中的过滤器)
        list_filter = ['fields']
    
        # 查询 ,指定哪些字段信息可以被搜索
        search_fields =[ 'fields']
    
        # 后台自定义默认排序 ,加‘-’表示降序
        ordering = ['-fields'] 
    
        # 添加日期过滤器,该字段只能是日期类型
         date_hierarchy = 'date_fields' 
    
        # 后台直接在表上修改数据
        list_editable =  ['fields']
    
        # 自定义该表菜单的icon样式
        model_icon = 'fa fa-cog'
    
        # xadmin/plugins/refresh插件定时刷新页面
        refresh_times = [60]  # 后台可选择10秒刷新一次或者60秒刷新一次
    
        # 后台自定义哪些字段只可读
        readonly_fields = [“fields”]
    
        # 列表显示的时候,指定的字段可以直接页面一键编辑
        list_editable = ["fields”]
    
        # 指定xadmin插件的样式
        style_fields = {'roles': 'm2m_transfer',“article”:'ueditor'}
    
        # filter_horizontal 从‘多选框’的形式改变为‘过滤器’的方式,水平排列过滤器,必须是一个 ManyToManyField类型,且不能用于 ForeignKey字段
        filter_horizontal = ('fields',)
    
        # 同上filter_horizontal,垂直排列过滤器
        filter_vertical = ["fields",]
    
        #  将ForeignKey字段从‘下拉框’改变为‘文本框’显示
        raw_id_fields = ['fields',]
    
        # 在编辑和查看列表时指定不显示的字段
        exclude = ['fields']
    
        # 在指定的字段后添加一个显示数据详情的一个按钮
        show_detail_fields=['fields']
        
        # 后台自定义不是下拉选择框,而是搜索框
    relfield_style = 'fk-ajax'

    xadmin.site.register(ModelObject, ModelObjectAdmin)

     基础设置

    from xadmin import views
    
    class BaseSetting(object):
        enable_themes = True   #开启主题选择
        use_bootswatch = True
    
    class GlobalSettings(object):
        site_title = "xx后台管理系统"      #设置头标题
        site_footer = " "      #设置脚标题 (设置底部关于版权信息)
     #设置菜单缩放
        menu_style = "accordion"   #设置菜单样式
    
    xadmin.site.register(views.BaseAdminView, BaseSetting)
    xadmin.site.register(views.CommAdminView, GlobalSettings)

    中文显示和时区设置

    # LANGUAGE_CODE = 'en-us'
    LANGUAGE_CODE = 'zh-hans'
      
    # TIME_ZONE = 'UTC'
    TIME_ZONE = 'Asia/Shanghai'

    app标题设置

    app下的apps.py文件

    class UserConfig(AppConfig):
        name = 'apps.user'
        verbose_name="用户管理"
  • 相关阅读:
    Linux学习——在虚拟机上的Linux进行磁盘分区
    Linux命令学习3——用户管理
    linux 命令学习2
    linux 命令学习1——tr命令
    基于netty的一个简单的时间服务器的实现(netty学习)
    JavaNIO
    JavaNIO中的内存映射io
    打造高效的工作环境 – SHELL 篇
    linux下怎么清理缓存
    清理系统缓存
  • 原文地址:https://www.cnblogs.com/freely/p/9743975.html
Copyright © 2020-2023  润新知