想实现的是一个表里面的字段 选择性的出现在菜单栏

1、如何自定义菜单

自定义菜单前

在asset\admin.py里添加如下代码:

class NewAssetApprovalZoneAdmin(admin.ModelAdmin):
list_display = ('sn','asset_type','manufactory','model','cpu_model','cpu_count','cpu_core_count','ram_size','os_distribution','os_release','date','approved','approved_by','approved_date')
'''
横着依次显示:'sn','asset_type',...省略'approved_by','approved_date'
''' admin.site.register(models.NewAssetApprovalZone,NewAssetApprovalZoneAdmin) '''只有添加了NewAssetApprovalZoneAdmin才会在后台里显示,要不然即使设置了也不显示'''

自定义菜单后

2、如何自定义搜索

在asset\admin.py里添加如下代码:

class EventLogAdmin(admin.ModelAdmin,BaseAdmin):
list_display = ('name','colored_event_type','asset','component','detail','date','user')
search_fields = ('asset',)
'''使用'asset'作为搜索'''

效果图

3、如何自定义过滤

在asset\admin.py里添加如下代码:

class EventLogAdmin(admin.ModelAdmin,BaseAdmin):
list_display = ('name','colored_event_type','asset','component','detail','date','user')
list_fields = ('asset','date')
'''使用'asset' date作为过滤'''

效果图

4、admin多对多

在asset\models.py里添加如下代码:

tags = models.ManyToManyField('Tag', blank=True)

 fields_horizontal = ('tags',)

 '''注意:这种只对多对多有效'''

在asset\admin.py里添加如下代码:

admin.site.register(models.Asset,AssetAdmin)

更改前

更改后

5、完成如下图显示的(效果下拉框,选择效果)

在asset\admin.py里添加如下代码:

class NewAssetApprovalZoneAdmin(admin.ModelAdmin):
.....省略
actions = ['approve_selected_objects'] def approve_selected_objects(modeladmin, request, queryset):
selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
ct = ContentType.objects.get_for_model(queryset.model)
return HttpResponseRedirect("/asset/new_assets/approval/?ct=%s&ids=%s" % (ct.pk, ",".join(selected)))
approve_selected_objects.short_description = "批准入库"

完成效果如下

上面的一点go就报错

为什么会报如下错误呢 ?因为你给了我三个,

那两个是什么东西?

actions = ['approve_selected_objects']

    def approve_selected_objects(*args,**kargs):
print(*args,**kargs)
pass

 

一个是request的那个对象 一个是你选中那几个

CMDB资产管理系统开发【day26】:Django admin的更多相关文章

  1. CMDB资产管理系统开发【day26】:批准资产入库

    刚才都是一条像内存,硬盘,网卡.多条的话如何操作 只有一条数据 下面的是有多条数据的 硬盘必须字段的验证 def __create_disk_component(self): disk_info = ...

  2. CMDB资产管理系统开发【day26】:admin action

    本节目标 审核写到数据库,我就单独写一个如下的 页面 单机go后就跳转到如下图界面,我们这节课的目标就是写一个这样的页面 asset\admin.py部分代码 注释如下: class NewAsset ...

  3. CMDB资产管理系统开发【day26】:数据正式存入待存区

    1.from表单提交 1.数据提交到哪里呢? 提交到assets/new_assets_approval.html这了 2.Yes, I'm sure提交了什么?          为什么没有下拉框了 ...

  4. CMDB资产管理系统开发【day25】:Django 自定义用户认证

    官方文档:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#substituting-a-custom-user-mode ...

  5. CMDB资产管理系统开发【day26】:实现资产自动更新

    1.需求分析 1.比对分析 比对的时候以那个数据源为主? old [1,2,3 ] db数据库 new [2,3,4 ] 客户端汇报过来的 当然以客户端汇报过来的数据为主 2.更新分析 不同的表到底拿 ...

  6. CMDB资产管理系统开发【day26】:CMDB上节回顾

    一.上节知识点回顾 服务器设计了一个表结构 开发了一个客户端 二.后台创建缓存区表 客户端连接服务器,在服务器的下面看报错信息 因为URL都没有写,所以我找不到呀 1.在MadKing\url.py ...

  7. CMDB资产管理系统开发【day26】:02-数据写入待存区

    一.资产自动回报数据及个更新流程图 二.表结构注释(NewAssetApprovalZone) class NewAssetApprovalZone(models.Model): "&quo ...

  8. CMDB资产管理系统开发【day26】:linux客户端开发

    客户端疑难点及获取流程 1.linux客户端支持2就可以,python3就是很麻烦 难道你要求所有的客户端都上pytho3吗? 现在从bin的入口进去 HouseStark.ArgvHandler(s ...

  9. CMDB资产管理系统开发【day25】:需求分析

    本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infra ...

随机推荐

  1. SQLServer之创建视图

    视图定义 视图是一个虚拟的表,是一个表中的数据经过某种筛选后的显示方式,视图由一个预定义的查询select语句组成. 使用SSMS数据库管理工具创建视图 1.连接数据库,选择数据库,展开数据库-> ...

  2. 【原】Java学习笔记005 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 程序的流程控制(流 ...

  3. Swift代理的使用

    Swift代理的使用 协议规定了用来实现某一特定功能所必需的方法和属性. 任意能够满足协议要求的类型被称为遵循(conform)这个协议. 类,结构体或枚举类型都可以遵循协议,并提供具体实现来完成协议 ...

  4. Linux学习历程——Centos 7 grep命令

    一.命令简介 grep 命令用于在文本中执行关键词搜索,并显示匹配的结果. 由于grep命令参数很多,这里只列出一些常用的参数. 参数 作用 -b 将可执行文件当作文本文件来搜索 -c 仅显示找到的行 ...

  5. 文件操作命令(move)

    move命令: // 描述: 将一个或多个文件从一个目录移动到另一个目录. // 语法: move [{/y | /-y}] [<Source>] [<Target>] // ...

  6. LeetCode算法题-Can Place Flowers(Java实现)

    这是悦乐书的第272次更新,第287篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第140题(顺位题号是605).假设你有一个花坛,其中一些地块是种植的,有些则不是. 然 ...

  7. 我的第一个python web开发框架(35)——权限数据库结构设计

    接下来要做的是权限系统的数据库结构设计,在上一章我们了解了权限系统是通过什么来管理好权限的,我们选用其中比较常用的权限系统来实现当前项目管理要求. 下面是我们选择的权限系统关系模型: 从以上关系可以看 ...

  8. 滑动窗口最大值的golang实现

    给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧.你只可以看到在滑动窗口 k 内的数字.滑动窗口每次只向右移动一位. 返回滑动窗口最大值 输入: nums = [, ...

  9. 干货:Vue粒子特效(vue-particles插件)

    转:https://www.jianshu.com/p/53199b842d25 image.png 图上那些类似于星座图的点和线,是由vue-particles生成的,不仅自己动,而且能与用户鼠标事 ...

  10. Linux:Day13(下) GRUB

    GRUB(Boot Loader): grub:GRand Unified Bootloader grub 0.x:grub legacy grub 1.x:grub2 grub legacy: st ...