Django建站历程:(十七)集成 xadmin2 后台管理

2019年6月24日 Jerry 7880 2021年1月17日

 xadmin是Django后台管理系统admin的一个替换方案,xadmin对admin做了一些扩展,而且使用了BootStrap框架,比admin的界面更好看。这里说一下django2如何集成xadmin2。xadmin2的源码地址:https://github.com/sshwsfc/xadmin

首先,默认集成的admin是下图样式的,访问 x.x.x.x/admin 即可访问。

比较传统的一个界面,下面看如何使用xadmin。

一、xadmin安装

比较方便的,服务器端输入pip install xadmin2 即可安装,当然你也可以通过源码安装。安装完成后在全局settings.py中添加 xadmin 这个app。

# settings.py 文件

# Application definition
INSTALLED_APPS = [
    ....
    # xadmin 后台
    'xadmin',
]

安装完成后记得同步数据库,命令就是常用的下面两条:

python manage.py makemigrations
python manage.py migrate

数据库同步后,可以执行命令创建一个管理员账户,当然之前admin管理后台创建的也生效。

python manage.py createsuperuser

二、xadmin路径配置

全局的urls.py文件添加xadmin所有url,修改代码如下:

# urls.py 文件

import xadmin

urlpatterns = [
    path('admin/', admin.site.urls),
    # 集成xadmin
    path('xadmin/', xadmin.site.urls),
    ....

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)  # 加入这个才能显示media文件

       此时浏览器输入地址:http://127.0.0.1:8000/xadmin/   登陆成功后就可以看到如下的管理员界面,是不是美观了许多?

三、xadmin配置

  • 设置后台和标题信息

上图可以看到,网页下方和左上角分别显示的是 “我的公司”和 “Django xadmin”,这个是可以自定义的,修改 /blog/admin.py 文件如下:

# /blog/admin.py 

import xadmin
from xadmin import views

class GlobalSetting(object):
    # 设置后台顶部标题   
    site_title ='博客后台管理'
    # 设置后台底部标题   
    site_footer ='博客后台管理'


xadmin.site.register(views.CommAdminView, GlobalSetting)

重新执行刷新界面后即可看到变化:

  • 设置主题

博客后台内置了许多主题,添加如下的代码即可改变:

class BaseSetting(object):
    # 启用主题管理器   
    enable_themes = True
    # 使用主题   
    use_bootswatch = True


# 注册主题设置
xadmin.site.register(views.BaseAdminView, BaseSetting)

  • 设置菜单

虽然管理员界面是出来了,但是之前添加成功的基本的文章发表等功能菜单都没有,需要我们重新添加一下,修改 /blog/admin.py 文件:

class ArticleAdmin(object):
    # 菜单图标
    model_icon = 'fa fa-book'
    # 分类筛选
    list_filter = ('catalogue',)
    # 搜索框
    search_fields = ('title',)  # 指定要搜索的字段
    # 图表显示
    data_charts = {
        "user_count": {'title': u"统计", "x-field": "id", "y-field": 
        "create_date", "order": ('create_date',)},}

xadmin.site.register(Article, ArticleAdmin)

可以看到菜单的图标、筛选、搜索和之前一样添加。这里还多了许多其他的功能,图表就是其中一个,这里横轴用的是ID 纵轴用的是创建时间,随便画了一个,还真是牛逼。

其他更多的属性和功能大家可以参考下xadmin2的介绍:https://xadmin.readthedocs.io/en/latest/index.html   许多比较牛逼的功能等待开发,之后博主用到了也会在这里写出来~!


《django 建站历程系列文章》

(一)服务器的选取与环境准备

(二)创建第一个project和app

(三)创建并显示博客的主页导航栏

(四)django-allauth实现用户登陆

(五)django-allauth实现第三方登陆

(六)使用bootstrap3美化登陆界面

(七)添加用户签名字段

(八)自定义用户头像

(九)发布我的第一篇博客

(十)CKEditor的配置使用

(十一)ajax实现文章添加评论

(十二)signal自动消息通知

(十三)基于django-haystack的全文搜索

(十四)配置SSL证书实现网站HTTPS访问

(十五)免费开启七牛云CDN加速

(十六)particles 粒子背景插件

(十七)集成 xadmin2 后台管理

(十八)RestFramework 编写API

(十九)Nginx+uwsgi 部署 django

(二十)自定义网站404界面

(二一)jwt为API添加身份认证

jerrycoding 博客源码大公开


原创文章,转载请注明出处: https://jerrycoding.com/article/site_building_17

微信
jerry微信赞助
支付宝
jerry支付宝赞助

您尚未登录,暂时无法评论。请先 登录 或者 注册

0 人参与 | 0 条评论

每日一句 (From ONE)
宇宙茫茫,连我们所在的星球都不能确定自己的确切坐标,因为群星正在不断迁徙。我们的生活也难以恒定不变,人生无法彩排,剧本草稿不经修改直接上演,难免状况百出。也许曾经相信的如今怀疑,也许今日相聚,明日便会离散,一切变幻无常,无常才是常态。
本周日,ONE和你关注那些意料之外的故事。
微信扫码

扫一扫关注我

关于本站