django2.1.7配置xadmin以及bug解决方案

强大的Django框架为我们自带了admin后台管理系统,为我们的开发省去了很多的事情,但有一个不好的地方,就是自带的admin系统太丑了!影响着我们操作后台的心情,因此很有必要换一个漂亮的后台管理系统,Xadmin就提供了这样一个系统。Xadmin基于bootstrap3,页面相对admin要美观许多,Xadmin作为一款全面的后台管理系统框架,不仅提供了基本的CRUD功能,还内置了丰富的插件功能。包括数据导出、书签、图表、数据添加向导及图片相册等多种扩展功能。Xadmin的插件系统借鉴了其他领域成功框架的设计思想,让插件可以扩展系统的任何一个功能点。对于开发者,Xadmin的插件开发简单;对于使用者,Xadmin的插件安装方便。可见Xadmin是十分强大的。下面就使用xadmin无缝衔接我的django2.1.7,当然这个过程是极其不友好的,我遇到了有史以来最多的bug。
xadmin下载地址: https://github.com/sshwsfc/xadmin
在这里插入图片描述
下载完成之后解压,进入解压目录,启动命令行,在命令行中进入django项目所需的虚拟环境中,执行python setup.py install安装xadmin:
在这里插入图片描述
注册app:
在这里插入图片描述
配置路由:
在这里插入图片描述
执行makemigrations,migrate生成所需的表:
此过程会产生若干bug,提供一个链接解决bug:https://www.cnblogs.com/xingfuggz/p/10142388.html
在这里插入图片描述
此时浏览器访问http://127.0.0.1:8000/admin/:
在这里插入图片描述

操作xadmin也会遇到许多错误:
(1):在这里插入图片描述
将xadmin\sites.py下的第248到351行注释掉,添加from django.views.i18n import null_javascript_catalog as javascript_catalog
在这里插入图片描述
将rel改成remote_field:
在这里插入图片描述
同样将所有报no attribute ‘rel’的地方都改成remote_field。
(2):在这里插入图片描述
将xadmin\plugins\quickform.py下的第80行self.add_url, (_('Create New %s') % self.rel.to._meta.verbose_name), name,修改为:self.add_url, (_('Create New %s') % self.rel), name,
在这里插入图片描述
(3):在这里插入图片描述
将xadmin\plugins\actions.py中的第94行改为:queryset, self.opts, self.admin_site)

在这里插入图片描述
(4):
在这里插入图片描述
没解决,直接将contrib\admin\utils.py下的第145行和146行注释掉了:
在这里插入图片描述
(5):
在这里插入图片描述
将django\forms\boundfield.py中的第93行注释掉:
在这里插入图片描述
想要在后台添加models.py中的表需要在app中创建一个adminx.py:
在这里插入图片描述
然后添加代码:

import xadmin
from .models import User

class UserAdmin(object):
	"""管理器,可以进行后台的一些自定义设置"""
	list_display = ["username","nickname","email","is_active"] # 定义后台显示的列
	list_per_page = 10 # 每页显示的个数
	search_fields = ["username","nickname","email","is_active"] # 根据哪些字段进行搜索

xadmin.site.register(User,UserAdmin)

想要在后台显示中文需要在models.py相应的类中设置verbose_name以及verbose_name_plural:
在这里插入图片描述
还有一些全局配置:

# 可写在任意adminx.py下,需要导入xadmin.view
from xadmin import views

class CommSetting(object):
	"""标签配置,需要绑定views.CommAdminView类"""
    site_title = '天天生鲜后台管理系统' # 页头
    site_footer = '天天生鲜' # 页脚
    menu_style = 'accordion' # 侧边栏风格
xadmin.site.register(views.CommAdminView,CommSetting)


class BaseSetting(object):
	"""主题配置,需要绑定views.BaseAdminView类"""
    enable_themes = True
    use_bootswatch = True

xadmin.site.register(views.BaseAdminView,BaseSetting)

此时再打开浏览器访问后台:
在这里插入图片描述
以上我们就完成了django2.1.7和xadmin的完美适配,可以愉快的进行后台管理了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值