Django中xamin配置

首先用pipenv安装xadmin

pipenv install xadmin

下载成功之后会报错

Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 1, in File "C:\Users\leo\AppData\Local\Temp\pip-build-thid_cll\xadmin\setup.py", line 11, in long_description=open('README.rst').read(), UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 3444: illegal multibyte sequence ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in C:\Users\leo\AppData\Local\Temp\pip-build-thid_cll\xadmin\

这是因为python3编码更改的原因,其实只是里面的一个文件有问题而已.

那么我们改用安装包来进行安装,登录github,搜索xadmin,第一个链接就是了,将其下载到我的桌面,然后打开安装包,将里面的README.rst文件删除掉,再新建一个同名空文件去替换掉.重新安装

pipenv install xadmin-master.zip

就可以安装成功了.

 

接下来是配置

由于后续需要对xadmin进行插件定制,需要修改源码,所以我们将下载好的zip文件中的xadmin文件夹单独拷贝出来,放到我们的项目根目录下,新建一个extra_apps(这里存放所有的第三方软件包)来存放.

然后卸载

pipenv uninstall xadmin

这么看起来,是不是觉得一开始安装只是为了安装包依赖呢.....

 

接下来在项目的setting中进行配置,先将xadmin import到settings中,在INSTALL_APP下新增两个项目,分别是"xadmin"和""crispy_forms""(注意此处是将原本的中划线改成了下划线).

如果原本在app中的admin.py中已经进行了原系统的admin配置,此时注释掉配置代码即可.

之后在系统的url文件中import xadmin,将原先url字典中的admin改为xadmin,后面的方法也是一样修改,以后访问admin/地址就会失效了,需要改为xadmin/.当然也可以不该url,只改动后面的视图函数,那么输入admin/直接跳转到xadmin后台,好像更不错.

然后在终端下运行

python3 manage.py makemigrations

python3 manage.py migrate

将xadmin下的表在数据库中生成

基本配置到这里就结束了

然后是将自己django中的app都注册进去

在每个app下新建一个adminx.py,不是xadmin.py

里面写入如下内容

 


import xadmin    #  不是adminx
from .models import EmailVerifyRecord, Banner

class EmailVerifyRecordAdmin(object):
list_display = ("code", "email", "send_type", "send_time") # 设置进行展示的字段列表
search_fields = ("code", "email", "send_type", "send_time") # 设置进行查询的字段列表
list_filter = ("code", "email", "send_type", "send_time") # 设置进行过滤查看的字段列表


xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin) # 将model注册到xadmin中

同一个app下面的model都写入此文件中,user不用,已经默认添加了.

配置完成以后,重新运行makemigrations xadmin 和 migrate xadmin,此时就可以生效了.
 

设置后台的标题,页脚和菜单.
在users这个app下的adminx.py文件中,加入以下内容

class GlobalSetting(object):
site_title = "慕学后台管理系统" #设置网站标题
site_footer = "慕学在线网" # 设置页脚
menu_style = "accordion" #将菜单设置为下拉菜单
xadmin.site.register(views.CommAdminView, GlobalSetting) # 将配置运行到后台系统之中去


激活后台的主题,并收起左侧菜单
在users这个app下的adminx.py文件中,加入以下内容

from xadmin import views

class BaseSetting(object):
enable_themes = True #这是激活网页的主题功能
use_bootswatch = True # 激活后可以下载各式主题

xadmin.site.register(views.BaseAdminView, BaseSetting) #将功能应用后台网页中

 

修改后台系统的app显示名称

打开每个app下面的apps.py文件,可以看到


from django.apps import AppConfig


class UsersConfig(AppConfig):
name = 'users'
verbose_name = "用户信息" # 这是后面添加的,主要就是将verbose_name加入进去

然后在当前目录的__init__.py文件中,加入以下内容
default_app_config = "users.apps.UsersConfig" # 加载app的样式,内容是appname.apps.ClassName




 关于xadmin中修改记录时,已经存在的图片数据无法加载,需要重新指定图片才可以成功保存的问题:

这个并不是bug,而是模型上会默认该值是必填的,想要允许它不设置还能保留原来的值,你可以在你的模型上添加 blank=True 的选项。答案来自https://segmentfault.com/q/1010000015618797/a-1020000015623226/1010000015618797/a-1020000015623226

posted @ 2018-09-24 12:19  修瑾  阅读(225)  评论(0编辑  收藏  举报