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="用户管理"
原文地址:https://www.cnblogs.com/freely/p/9743975.html