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="用户管理"