本文链接:https://www.jianshu.com/p/0f622d206ddf
作者:西瓜甜
官方网站
https://github.com/sshwsfc/xadmin
切换分支到 django2
源码方式安装
- 下载源码
shell> wget https://codeload.github.com/sshwsfc/xadmin/zip/django2
shell> yum install unzip
shell> unzip django2
速度慢的话,建议 Fork 到自己的仓库,之后从自己的仓库克隆
- 把下载好的源码中的
xadmin
文件夹复制到项目的根目录
shell> cd xadmin-django2
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'))
- 安装依赖包
-
django-crispy-forms > = 1.6.0(适用于xadmin酥脆形式)
-
django-reversion([OPTION]对于对象历史和恢复功能,请在你的django中选择正确的版本,参见changelog)
-
django-formtools([OPTION]用于wizward表格)
-
xlwt([OPTION]用于导出xls文件)
-
xlsxwriter([OPTION]用于导出xlsx文件)
-
future
-
django-import-export
-
six
pip3 install django-reversion django-crispy-forms django-formtools xlwt xlsxwriter future django-import-export httplib2 six
- 注册
xadmin
应用到 项目中
# settings.py 文件的内容
INSTALLED_APPS = [
...略...
'xadmin.apps.XAdminConfig',
'crispy_forms',
]
- 修改路由
项目的根路由下修改
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
]
# 改为
from extra_apps import xadmin
urlpatterns = [
path('xadmin/', xadmin.site.urls),
]
- 更新
xadmin
的表到数据库中
在项目主目录下执行
shell> python3 manage.py makemigrations
shell> python3 manage.py migrate
- 创建管理账户
shell> python3 manage.py createsuperuser
- 启动并访问测试
使用浏览器访问
http://127.0.0.1:8000/xadmin
image.png
向 xadmin
中注册自己的 models
-
可以在每个应用中创建
adminx.py
文件 -
之后在这个文件中进行注册
示例: 注册
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)
全局配置
- 使用主题
一般可以在任意一个应用的 adminx.py
文件中添加如下内容
from xadmin import views
class BaseSetting(object):
enable_themes = True # 授权使用主题
use_bootswatch = True # 使用 bootstrap 的主题
xadmin.site.register(views.BaseAdminView, BaseSetting)
- 修改页面左上角的内容和页脚
继续在 adminx.py
文件中添加如下内容
class GlobalSettings(object):
site_title = "鲨鱼在线"
site_footer = "鲨鱼网络科技有限公司"
xadmin.site.register(views.CommAdminView, GlobalSettings)
修改后
修改后- 修改左侧菜单样式
只需要在刚才我们定义的 GlobalSettings
中添加如下内容
class GlobalSettings(object):
...略...
menu_style = 'accordion'
修改左侧菜单样式
- 修改自定义的应用名称为中文
之前
之后
实现方法
只需在每个 应用目录下的 apps.py
文件中的类中添加 verbose_name
属性即可,以 users
为例
xadmin
的进阶开发
更新后台注册model
用到的图标
xadmin
使用的是 https://fontawesome.com/
中文网: http://www.fontawesome.com.cn/
到网站下载最新版本,之后解压拷贝到xadmin
的源码中即可
解压后只需要如下两个目录
css
和 fonts
复制的自己项目的 xadmin
源码的如下目录
xadmin/static/xadmin/vendor/font-awesome
之后按照官网提示找到图片都一组类名称
点击图标库image.png
image.png
再在 adminx.py
中使用
按 Contro + F5
组合键,进行强制刷新页面,让页面重新加载静态文件,
查看效果。
Mac
是 shift + command + r
网友评论