部署

  1. 用 pip 安装 xadmin 及相关依赖包

    pip install xadmin
    pip uninstall xadmin
    #以上操作之所以先用 pip 安装又卸载,是希望借助 pip 安装 xadmin 需要的依赖,然后我们再使用 github 最新版的 xadmin 时便不需要担心依赖的缺少.
  2. 从 github 下载 xadmin 最新源码(xadmin 文件夹),放到项目根目录下的 extra_apps
  3. 在 settings.py 中注册 xadmin 和 crispy_form

  4. 在 urls.py 中移除 admin 的引用,引用 xadmin 并且修改 url
  5. createsuperuser
  6. make migerations 并且 migerate,期间可能会提醒缺少的包,pip 安上即可.比如future,six,django-import_export 等
  7. debug,测试登陆,成功即可进行最后一步
  8. 如果后面对数据库操作添加数据等报错提示缺少xadmin 相关表时,只需要 makemigerations 并 migerate 即刻.

将 models 中的数据表注册到 xadmin 管理

注册

  1. 在 app 目录下新建 adminx.py
  2. 在 adminx.py 中写代码实现注册表到 xadmin 中进行管理.思路:

    1. import xadmin 和 models 里的表类
    2. 新建‘表名admin’类,内容可以先 pass
    3. 用 register 函数注册,将1和2里的两个类绑定.注意参数顺序,先表类后 admin类.

优化

  1. 为 models.py 中的 class ,尤其是作为外键的数据表重载_str_ 函数,规定被显示的信息
  2. adminx.py 中的 *admin class可以添加

    list_display=[]设置默认显示数据库哪些字段.

    list_filter=[]增加过滤器字段(外键需要指定字段:外键__字段名).

    search_fields=[]设置可搜索的字段,一般排除时间避免错误.

  3. apps.py 为 class 增加 verbose_name,同时在 app 的 init.py 增加一行, 即可替代后台APP名称

xadmin 全局配置

  1. 任选一个app 下的 adminx.py
  2. adminx.py 中写BaseSetting 这个类

    • enable_themes = True
    • use_bootswatch = True
  3. 同理,GlobalSetting 类

    • site_title
    • site_footer
    • menu_style = 'accordion' # 左侧折叠
  4. 注册这两个类

    from xadmin import views
    
    xadmin.site.register(views.BaseAdminView, BaseSetting)
    xadmin.site.register(views.CommAdminView, GlobalSetting)