Django1.11 后台管理利器 Xadmin

2019-01-01  本文已影响53人  运维开发_西瓜甜

Xadmin

官方网站

https://github.com/sshwsfc/xadmin

源码方式安装

  1. 下载源码
shell> git clone git@github.com:sshwsfc/xadmin.git

速度慢的话,建议 Fork 到自己的仓库,之后从自己的仓库克隆

  1. 把下载好的源码中的 xadmin 文件夹复制到项目的根目录
shell> cd xadmin
shell> mkdir /path/project/extra_apps
shell> cp -r xadmin /path/project/extra_apps

/path/project 为你项目的主目录

settings.py 文件中把 extra_apps 目录添加到 sys.path 路径中

sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
  1. 安装依赖包
pip3 install django-reversion django-crispy-forms django-formtools xlwt xlsxwriter future django-import-export httplib2  six
  1. 注册 xadmin 应用到 项目中
# settings.py 文件的内容

INSTALLED_APPS = [
    ...略...
    'xadmin.apps.XAdminConfig',
    'crispy_forms',
]
  1. 修改路由

项目的根路由下修改

from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]
# 改为
from extra_apps import xadmin

urlpatterns = [
    url(r'^xadmin/', xadmin.site.urls),
]
  1. 更新 xadmin 的表到数据库中

在项目主目录下执行

shell> python3 manage.py makemigrations
shell> python3 manage.py migrate
  1. 创建管理账户
shell> python3 manage.py createsuperuser
  1. 启动并访问测试
    使用浏览器访问
http://127.0.0.1:8000/xadmin
image.png

xadmin 中注册自己的 models

  1. 可以在每个应用中创建adminx.py 文件

  2. 之后在这个文件中进行注册

    示例: 注册 EmailVerifyRecord 这个 model, 文件内容如下:

import xadmin
from .models import EmailVerifyRecord

class EmailVerifyRecordAdmin(object):
    pass

xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)
image.png

为注册的 model 添加显示字段、搜索和过滤字段的功能

编辑 adminx.py 文件,在管理 model 的类里添加如下 内容

class EmailVerifyRecordAdmin(object):
    list_display = ('code', 'email', 'send_type', 'send_time')
    search_fields = ('code', 'email', 'send_type')
    list_filter = ('code', 'email', 'send_type', 'send_time')
    # 元组里面是这个 model 的字段名
image.png

添加功能之前

添加功能之前

添加功能之后

添加功能之后

字段添加模板

cls_name = "UserCourse"

f="""user
course
add_time
"""
fields = tuple(f.split())


TPL = """
import xadmin

from .models import {cls_name}


class {cls_name}Admin(object):
    list_display = {fields}
    list_filter = {fields}
    search_fields = {fields}


xadmin.site.register({cls_name}, {cls_name}Admin)

""".format(cls_name=cls_name, fields=fields)
print(TPL)

全局配置

  1. 使用主题

一般可以在任意一个应用的 adminx.py 文件中添加如下内容

from xadmin import views
class BaseSetting(object):
    enable_themes = True  # 授权使用主题
    use_bootswatch = True  # 使用 bootstrap 的主题

xadmin.site.register(views.BaseAdminView, BaseSetting)
  1. 修改页面左上角的内容和页脚
修改页脚前

继续在 adminx.py 文件中添加如下内容

class GlobalSettings(object):
    site_title = "鲨鱼在线"
    site_footer = "鲨鱼网络科技有限公司"
    
xadmin.site.register(views.CommAdminView, GlobalSettings)

修改后

修改后
  1. 修改左侧菜单样式

只需要在刚才我们定义的 GlobalSettings 中添加如下内容

class GlobalSettings(object):
    ...略...
    menu_style = 'accordion'
修改左侧菜单样式
  1. 修改自定义的应用名称为中文

之前

之前

之后

image.png

实现方法

只需在每个 应用目录下的 apps.py 文件中的类中添加 verbose_name 属性即可,以 users 为例

实现方法

xadmin 的进阶开发

更新后台注册model用到的图标

xadmin 使用的是 https://fontawesome.com/

中文网: http://www.fontawesome.com.cn/

到网站下载最新版本,之后解压拷贝到xadmin 的源码中即可

解压后只需要如下两个目录

cssfonts

复制的自己项目的 xadmin 源码的如下目录

xadmin/static/xadmin/vendor/font-awesome

image.png

之后按照官网提示找到图片都一组类名称

点击图标库
image.png
image.png

再在 adminx.py 中使用

image.png

Contro + F5 组合键,进行强制刷新页面,让页面重新加载静态文件,

查看效果。

Macshift + command + r

image.png
上一篇下一篇

猜你喜欢

热点阅读