django-admin文档:https://xadmin.readthedocs.io/en/latest/index.html
目录:

1、xadmin基本配置

2、配置后台显示的模型类

3、后台注册模型类

4、修改后台应用、字段显示的名字

5、修改应用在后台显示的名字

6、修改admin后台显示的图标,如应用的图标和表的图标。

7、自定义user用户管理

8、后台显示数据库中不存在的字段

9、save_models 和 delete_model

安装最新的xadmin

pip install https://github.com/sshwsfc/xadmin/tarball/master
在django中注册xadmin应用

# 安装 xadmin 以下三个 应用
'xadmin',
'crispy_forms',
'reversion',
添加路由

# 注释掉 django 自带的 admin路由
# url(r'^admin/', admin.site.urls),
url(r'xadmin/', include(xadmin.site.urls)),
编写adminx.py 文件

1、配置基本信息

class BaseSetting(object):
"""xadmin的基本配置"""
enable_themes = True # 开启主题切换功能
use_bootswatch = True

class GlobalSettings(object):
"""xadmin的全局配置"""
site_title = "xx运营管理系统" # 设置站点标题
site_footer = "xx科技有限公司" # 设置站点的页脚
menu_style = "accordion" # 设置菜单折叠

xadmin.site.register(views.CommAdminView, GlobalSettings)
xadmin.site.register(views.BaseAdminView, BaseSetting)
2、配置后台显示的模型类

"""
list_display 控制列表展示的字段
search_fields 控制可以通过搜索框搜索的字段名称,xadmin使用的是模糊查询
list_filter 可以进行过滤操作的列
ordering 默认排序的字段
readonly_fields 在编辑页面的只读字段
exclude 在编辑页面隐藏的字段
list_editable 在列表页可以快速直接编辑的字段
show_detail_fileds 在列表页提供快速显示详情信息
refresh_times 指定列表页的定时刷新
list_export 控制列表页导出数据的可选格式
show_bookmarks 控制是否显示书签功能
data_charts 控制显示图标的样式
model_icon 控制菜单的图标

"""
# Objects 模型类名
class ObjectsAdminModel(object):
# def save_model
list_display = ['name','create_date','update_date','verified_reason','is_delete','categry','title','image','location']
list_filter= ['location','categry']
# data_charts= 'drivers-license-o'
search_fields = ['id', 'name']
# model_icon = 'fa fa-user-o'
list_editable = ['name']

3、后台注册模型类

xadmin.site.register(views.Objects, ObjectsAdminModel)
4、修改后台应用、字段显示的名字

# 在 django的models.py 文件中
class classname(models.Model):
name = models.CharField(max_length=20,unique=True,verbose_name='字段名字')

class Meta:
db_table = 'table name' # 数据库中以这个名字创建数据表
verbose_name = '表名' # 后台显示的表名
verbose_name_plural = '表名' # 后台显示的表名复数 英语复数是加s 这里我们写死为 要显示的表名
5、修改应用在后台显示的名字

# 在 应用模块下的apps.py 文夹下

class xxxConfig(AppConfig):
name = 'xxx'
verbose_name = 'xx信息'
# 应用 下的 __init__.py 文件
default_app_config = "应用.apps.应用Config" # 应用的路径
6、修改admin后台显示的图标,如应用的图标和表的图标。

去到这个网站下载最新的图标文件  http://fontawesome.dashgame.com/

替换xadmin的原来的图标文件

修改xadmin的图标文件

去到 http://fontawesome.dashgame.com/ 找到合适的图标样式 点击 图标边上的 复制按钮  复制图标的css样式名字

Django的adminx.py 文件中修如下

model_icon = 'fa 复制来的css样式名字'

修改完后xadmin后台样式

比原来的圆圈 图标好看多了

7、最后关于user 应用   Django是自带用户管理的,xadmin也会自动注册user,若要自定义用户模型类,需要在xadmin 注销user再注册,后台才会显示新注册的user模型类,没注销就注册user会报错

先注销后注册

xadmin.site.unregister(User)
xadmin.site.register(User, UserAdmin)

import xadmin
# Register your models here.

from .models import User
from xadmin.plugins import auth

class UserAdmin(auth.UserAdmin):
list_display = ['id', 'username', 'mobile', 'email', 'date_joined']
readonly_fields = ['last_login', 'date_joined']
search_fields = ('username', 'first_name', 'last_name', 'email', 'mobile')
style_fields = {'user_permissions': 'm2m_transfer', 'groups': 'm2m_transfer'}

def get_model_form(self, **kwargs):
if self.org_obj is None:
self.fields = ['username', 'mobile', 'is_staff']

return super().get_model_form(**kwargs)

xadmin.site.unregister(User)
xadmin.site.register(User, UserAdmin)
8、后台显示模型类不存在的字段。

需求如下:订单信息中显示商品,但是我们知道订单和订单中的商品是分开两个表储存的,通过外键关联起来。那如何在订单信息中显示所包含的商品呢?

一、在订单中再添加一个字段,保存该订单所有商品的简单信息。

二、不修改数据库字段,而是在后台显示时多显示一字段(显示改订单的所有商品的基本信息)

第二种方法的代码如下:自定义一个显示字段(get_goods),该字段必须为只读(readonly_fields)才会显示出来。

class OrdersAdminModel(object):

def get_goods(self,obj):
goods_queryset = obj.ordergoods_set.all()
return str(["商品%s:%s 单价:%s 元"%(i.goods.id,i.goods.name,i.goods.price) for i in goods_queryset])
get_goods.short_description = '购买的商品'

list_display = ['order_id','user','status','get_goods']
readonly_fields = ("order_id",'get_goods')
9、django自带的admin是有save_models和delete_model的,后台修改模型类后就会执行改函数,xadmin中如下

def save_models(self):

#新的对象
obj = self.new_obj
#可以在这里面写些逻辑
# 保存该对象
obj.save()

def delete_model(self):
# 删除数据对象
obj = self.obj
#相应的操作
obj.delete()
---------------------
作者:bugMakeer
来源:CSDN
原文:https://blog.csdn.net/p571912102/article/details/82180034
版权声明:本文为博主原创文章,转载请附上博文链接!

django后台xadmin如下配置(小结)的更多相关文章

  1. 第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明

    第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明 设置后台列表页面可以直接修改字段内容 在当前APP里的adminx.py文件里的 ...

  2. 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置

    第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置 设置后台某个字段的排序规则 在当前APP里的adminx.py文件里的数据表管理器里设置 order ...

  3. Django配置后台xadmin管理界面

    Django配置后台xadmin管理界面 python版本3.6.5 Django版本1.10.8(刚开始是2.1.5,由于各种错误,改成了低版本) 1.xadmin的安装,下载地址https://g ...

  4. django中怎么使用自定义管理后台xadmin

    django中怎么使用自定义管理后台xadmin 2018年05月19日 15:48:08 LH_python 阅读数:1001   首先创建基本的django项目,配置好基本的model ,url, ...

  5. 第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置

    第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置 1.xadmin主题设置 要使用xadmin主题,需要在一个app下的adminx.py后台注册文件里,写一 ...

  6. 路飞-后台xadmin配置

    xadmin后台管理 安装:luffy虚拟环境下 # >: pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2 ...

  7. Django 后台管理xadmin

    一. xadmin的使用 后台管理在开发中可以给我们提供很大的便利,django自带了一个后台管理admin,不过还有一个xadmin比django自带的好用一些,功能更加强大,为模型提供了版本控制, ...

  8. python框架Django使用xadmin管理后台数据

    Django使用xadmin管理后台数据 关注公众号"轻松学编程"了解更多. 作用:xadmin比Django内置的admin更美观.更方便. 一.导入xadmin(第三方库) 方 ...

  9. Django后台管理界面

    之前的几篇记录了模板视图.模型等页面展示的相关内容,这篇主要写一下后台admin管理界面的内容. 激活管理界面 Django管理站点完全是可选择的,之前我们是把这些功能给屏蔽掉了.记得上篇中Djang ...

随机推荐

  1. WebGL学习笔记(七):输入和动画

    目前为止,我们绘制出来的3D物体都是静止的,接下来我们需要让桌面上的小盒子可以根据我们按键(上下键)前进后退: 输入方面,监听按键和鼠标消息直接在document上添加对应的监听就行了: 动画这块,我 ...

  2. matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色

    一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 < ...

  3. [c++] Sequence Containers

    写在前面 C++ Standard Library For efficiency reasons, STL is not object-oriented: Makes little use of in ...

  4. 【机器学习之一】python开发spark环境搭建

    环境 spark-1.6 python3.5 一.python开发spark原理使用python api编写pyspark代码提交运行时,为了不破坏spark原有的运行架构,会将写好的代码首先在pyt ...

  5. SpringMVC中静态资源的处理

    web项目中web.xml配置 在一个使用springmvc的web项目中,必然在web.xml中要配置前端控制器DispatcherServlet <servlet> <servl ...

  6. 可扩展标记语言XML之二:XML语言格式规范、文档组成

    大家好,小乐又来了,好久不见!这次接着上次可扩展标记语言XML之一:XML概念,作用,示例,继续讲述XML. 一.格式良好的 xml 1.语法规范: 1).必须有 XML 文档声明: <?xml ...

  7. LeetCode 32. 最长有效括号(Longest Valid Parentheses) 31

    32. 最长有效括号 32. Longest Valid Parentheses 题目描述 给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度. 每日一算法2019/6/ ...

  8. 遇到了NameError: name ‘name’ is not defined 这样的错误。

    改正:__name__ == "__main__" name的左右两边各有两条下划线,不是左右两边各有一条

  9. Golang 实现单例模式

    目录 只适用于单线程环境 支持并发版本 优化并发版本 sync.Once版本 只适用于单线程环境 package main import "fmt" type Single str ...

  10. Android--创建快捷方式

    需要权限: <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /&g ...