百人计划《Django By Example》Django

Django-11-xadmin安装及配置

2018-08-03  本文已影响7人  JOooo_

xadmin是Django后台管理系统admin的一个替换方案,xadmin对admin做了一些扩展。界面上有些操作会更方便。比如xadmin自带了导出功能,可以导出excel,csv,json等格式的文档。

这里介绍下xadmin一些简单的使用,以及常用的与admin不同的地方。

1. 安装

首先,我的环境是:python3.6,django2.0

如果直接使用pip install xadmin会报错,因为这样安装默认对应的django版本是1.4的(印象中)。所以我们需要安装xadmin项目django2分支的代码。命令如下:

pip install git+git://github.com/sshwsfc/xadmin.git@django2

或使用https的地址安装:

pip install git+https://github.com/sshwsfc/xadmin.git@django2

注意,由于上述命令用到了Git工具,所以请安装Git工具后再执行上述命令(安装Git后可能需要重启电脑才能生效)。

另外,如果上述命令行方式较慢,也可直接下载分支的代码,再安装:

2. 配置

在Django项目中做如下配置

1)项目setting.py配置文件中,INSTALLED_APPS中添加:

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

2)在项目工程的根urls.py中,添加:

import xadmin
xadmin.autodiscover()

from xadmin.plugins import xversion
xversion.register_models()

urlpatterns = [
    path(r'', xadmin.site.urls)
]

3)创建xadmin相关的表
配置完xadmin后,需运行一下python manage.py migrate,创建xadmin相关的数据库表。

3. xadmin.py中注册模型

现在替换掉原应用中的admin的内容。注释掉admin.py中的内容,然后在应用路径下新增xadmin.py文件,添加如下代码,注册Device模型(已在model.py中先创建Device模型)。

以下代码中的显示,排序,筛选器等相关的设置都与admin中一样。

注意:admin.py中DeviceAdmin是继承admin.ModelAdmin,而xadmin.py中需改为object。

class DeviceAdmin(object):
    readonly_fields = ('date',)
    list_display = ['id', 'device_name', 'area_company', 'site', 'device_id', 'device_type', 'account', 'password']
    list_display_links = ('id', 'device_name',)
    ordering = ('id',)

     # 筛选器
   search_fields = ('area_company__name', 'site__site', 'device_name', 'device_id')  # 搜索字段
    list_filter = ('device_type', 'supplier', 'device_model', 'responsible_by')

xadmin.site.register(Device, DeviceAdmin)
上一篇下一篇

猜你喜欢

热点阅读