当前位置: 首页 > 编程日记 > 正文

select三级联动 怎么删除前一个的_python测试开发django57.xadmin选项二级联动

前言

当我们选择项目分类的时候,一个项目下关联多个模块,同时有这两个选项框的时候,需要实现选中一个项目,模块里面自动删除出该项目下的模块,如下图这种

334dc2e80d0cc50aa09e12108392072c.png

解决基本思路:
1.写个jqeury脚本监听change事件
2.ajax发个请求给后端,用views试图函数实现筛选,回传到页面上
3.xadmin加载js脚本

ajax请求

关于moles相关的内容就不重复写了,打开后台页面,查看select标签的id值,这个id值就是id_和Fieldname的组合
使用了xadmin自带的selectize.js中的方法

  • selectize.clearOptions()清空内容

  • selectize.addOption() 添加数据

4b35211899c4f1b6eda6bd3762ab87a0.png

$("#id_p_name").change(function (e) {
var mid = $(this).val();
$('#id_m_name')[0].selectize.clearOptions(); //二级select清空选项
$.ajax({
type: "get",
url: "/select_module/?mid=" + mid,
async: true,
beforeSend: function (xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", $.getCookie("csrftoken"));
},
success: function (data) {
data = JSON.parse(data.msg)//将JSON转换
for (var i = 0; i < data.length; i++) {
var test = {text: data[i].fields.module_name, value: data[i].pk, $order: i + 1}; //遍历数据,拼凑出selectize需要的格式
$('#id_m_name')[0].selectize.addOption(test); //添加数据
}
},
error: function (xhr, textStatus) {
console.log(xhr);
console.log(textStatus);
}
})
})

可以先在浏览器上调试下,确保没问题后,再加载js

155f781a0da50d5024946830452bd717.png

views试图函数和urls.py配置

views.py写个试图函数,删选对应的数据,返回json

# views.py
from django.http import HttpResponse, JsonResponse
from django.core import serializers
import json
from .models import ModuleName
# Create your views here.

# 二级联动View函数

def select_m(request):
# 通过get得到父级选择项
m_id = request.GET.get('mid', '')
# 筛选出符合父级要求的所有子级,因为输出的是一个集合,需要将数据序列化 serializers.serialize()
modules = serializers.serialize("json", ModuleName.objects.filter(project_info_id=int(m_id)))
# 判断是否存在,输出
if modules:
return JsonResponse({"msg": modules})

urls.py设置一个访问地址

from django.conf.urls import url
from django.contrib import admin
import xadmin
from hello import views

urlpatterns = [
url(r'^xadmin/', xadmin.site.urls), # xadmin
url(r'^admin/', admin.site.urls), # 原来的admin
url(r'^select_module/', views.select_m),
]

加载js文件

xadmin加载自己写的js文件,可以参考之前写的这篇https://www.cnblogs.com/yoyoketang/p/10717388.html
接下来把自己写的javascript脚本放到/xadmin/static/xadmin/js目录下

6b1ac690901e46413c39bd9dca24a66c.png

注意前面要加个分号(;),要不然不生效

get_media加载js

xadmin注册的时候,重写get_media方法,添加xadmin.add.select.js

class ApiTestAdmin(object):
list_display = ["name", "url", "type"]

def get_media(self):
# media is the parent's return value (modified by any plugins)
media = super(ApiTestAdmin, self).get_media() + self.vendor('xadmin.page.list.js', 'xadmin.page.form.js')
# if self.list_display_links_details:
# media += self.vendor('xadmin.plugin.details.js', 'xadmin.form.css')

# xadmin.list.xxx.js是自己写的js脚本
media += self.vendor('xadmin.add.select.js', 'xadmin.form.css')
return media

# media = super(ControlImage,self).get_media()
# media.add_js(('js/content.js',)) # 这种方法行不通,会报找不到.add_js方法
# return media

xadmin.site.register(models.ApiTest, ApiTestAdmin)

主要思路参考这篇博客 https://www.cnblogs.com/ttzz/p/10732405.html

2019年《python3自动化UI+接口》课程5月25-7月27开课主讲老师:上海-悠悠
上课方式:QQ群视频在线教学
上课时间:每周六、周日晚上20:30-22:30
报名费:2000
联系QQ:283340479
课表详情:5月25号开学!第13期《python3自动化测试selenium+接口》课程

相关文章:

安装wdcp的方法和bug

1.Wdcp安装SSH登录系统,这里讲解源码编译安装和RPM包安装两种 a.源码编译安装 下载源码包wget http://dl.wdlinux.cn:5180/lanmp_laster.tar.gz 解压并安装 tar zxvf lanmp_laster.tar.gz sh in.sh linux安装wdcp之后mysql找不到my.cnf&#xff0c;locate my-medium.cnf。 cp /…

第七周读书笔记

《深入理解计算机系统》从程序设计与性能优化的角度介绍了计算机系统&#xff0c;让我从程序员的角度了解了计算机系统&#xff0c;更深入地理解了硬件、操作系统和编译系统等对应用程序性能和正确性的影响&#xff0c;并掌握了基本的程序优化设计技术&#xff0c;为编写更高效…

是什么限制了区块链技术的应用?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 2017年已经匆匆离去&#xff0c;回顾过去一整年&#xff0c;似乎区块链应用一直处于隐忍未发的状态&#xff0c;很多项目的落地已处于验证阶段&…

软件包管理(rpmyum)

一、rpm包管理器 rpm是一个功能强大的包管理工具&#xff0c;可用于构建&#xff0c;安装&#xff0c;查询&#xff0c;验证&#xff0c;更新和卸载软件包。 用法&#xff1a; rpm [OPTION...] 配置文件&#xff1a; /var/lib/rpm/ 已安装rpm包的元数据 选项&#xff1a; -i&am…

python yield理解_对Python中Yield的理解

看到下面这段程序的时候&#xff0c;有点不明白这个yield到底是个啥东西&#xff0c;看了网上很多的博客&#xff0c;大致理解了yield的含义&#xff0c;所以记录下来。要说yield首先要说python中的生成器&#xff0c;那么什么是生成器?假设有一个包含一百万个元素的列表&…

Linux下文件的三种时间戳

Linux下文件的三种时间标记 三种时间对应关系表 columncolumncolumn访问时间Accessatime修改时间Modifymtime状态改动时间Changectime如何查看文件文件的三种时间戳 stat filename 三种时间戳的解释 访问时间&#xff1a;读一次文件的内容&#xff0c;这个时间就会更新。比如mo…

比特币和以太坊本质有什么区别?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 14年的时候&#xff0c;币圈 &#xff08;当时还没有链圈之说&#xff0c;链圈应该是17年的事情了&#xff0c;区块链概念的流行是15年底&#xf…

HDU1402(FFT入门)

题目链接&#xff1a;http://acm.hdu.edu.cn/status.php?userReykjavik11207&pid1402&status5 本题数据范围为5e4&#xff0c;常规方法O(n2)肯定是不行的。 FFT是离散傅里叶变换DFT的快速形式 对多项式f(x) a0 a1x a2x2 an-1xn-1&#xff0c;有两种表示法&#x…

python怎么读_如何用Python读写文件

前面我们已经介绍了很多Python相关的基础知识&#xff0c;大家是不是对Python已经有了进一步认识了呢&#xff1f;作为人工智能时代的热门编程语言&#xff0c;开始接触并学习Python的孩子越来越多&#xff0c;家长们都不想让自己的孩子落于人后&#xff0c;近期前来找陈老师咨…

什么是区块链智能合约?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 自从2009年第一枚比特币诞生&#xff0c;九年多时间里&#xff0c;区块链技术正在被应用在人们生活的各方各面&#xff0c;从1.0时代的数字货币&…

python数据分析基础 余本国_Python数据分析基础

本书根据作者多年教学经验编写, 条理清楚, 内容深浅适中, 尽量让读者从实例出发, 结合课后练习, 少走弯路。本书涉及的内容主要包括Python数据类型与运算、流程控制及函数与类、Pandas库的数据处理与分析等。作者通过近三轮的教学&#xff0c;对Python3.x的基础知识进行了筛选和…

stm32F042 (二) 按键触发中断

已经实现GPIO口输出高低电平控制LED&#xff0c;这里实现按键触发中断来改变LED闪亮的频率&#xff0c;因为PB3连着LED&#xff0c;所以PB3的输出模式没有改变&#xff0c;随意选一个GPIO口PA7接按键产生中断。因为nucleo开发板是裸板&#xff0c;所以按键、上拉电阻是另找在面…

区块链和智能合约的关系

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 尽管比特币&#xff08;Bitcoin&#xff09;和以太坊&#xff08;Ethereum&#xff09;是经常被一起提及的两个词&#xff0c;但实际上&#xff0…

repo同步代码_iTOP-4412开发板android4.0代码下载和编译

Android4.0 源码可以从光盘&#xff0c;网盘获取稳定版本&#xff0c;也可以从 GitHub 下载我们的开发版本。GitHub 仅提供源码下载&#xff0c;不提供二进制下载&#xff0c;二进制文件存放在光盘和网盘中。基于迅为4412开发板6.3.1.1 repo 下载android 代码管理不同于 uboot,…

vue项目构建实战基础知识:SPA理解/RESTful接口介绍/static目录配置/axios封装/打包时map文件去除...

一、SPA 不是指水疗。是 single page web application 的缩写。中文翻译为 单页应用程序 或 单页Web应用&#xff0c;更多解释请自行搜索。 所有的前端人员都应该明白我们的页面的 url 构成&#xff1a;http://www.fengcms.com/index.html?namefungleo&old32#mylove/is/wo…

神奇的输入 while(cin....)如何在遇见换行之后进入下一层循环读入

1 cin>>m>>n;2 for(int i1;i<m;i){4 int x0;5 char ch ;6 while(ch!10) //在遇到换行之后进入下一层循环读入。7 {8 x;9 cin>>c[x]; 10 chgetchar(); 11 } 神奇的输入。 get skill&#xff01;转载于:https://www.cnblogs.com/zyker/p/588…

区块链中的“智能合约”有何应用?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 如刺金般闪耀的区块链时代&#xff0c;投资者的热潮还将持续升温&#xff0c;与此同时金融的大佬已经开始注意到区块链应用落地场景的实现&#xff…

米勒罗宾素性测试(Miller–Rabin primality test)

1 #include<iostream> //该程序为哥德巴赫猜&#xff08;想输出所有的组合&#xff09;2 #include<cmath>3 #include<cstdlib>4 #include<ctime>5 #include<cstdio>6 7 using namespace std;8 9 typedef unsigned long long ull; 10 typedef u…

Linux Linux程序练习十一(网络编程大文件发送UDP版)

//网络编程发送端--大文件传输&#xff08;UDP&#xff09; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h>#include <sys/types.h> #include <sys/socket.h> #include <n…

iic通信原理_电子知识之IIC通信原理和协议分享

IIC 的一些特征&#xff1a; 两条总线&#xff1a;串行数据总线(SDA)和串行时钟总线(SCL)真正的多主机总线连接到相同总线的ic数量只受到总线的最大电容400pF限制。串行8位双向数据在标准模式下可达100K bit/s快速模式400K bit/s,高速模式下3.4Mbit/s.数据有效性规定&#xff1…

以太坊核心概念

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 以太坊虚拟机&#xff08;EVM&#xff09; 以太坊虚拟机&#xff08;EVM&#xff09;是以太坊中智能合约的运行环境。它不仅被沙箱封装起来&#…

使用rest_framework写api接口的一些注意事项(axios发送ajax请求)

1. 类继承GenericAPIView&#xff0c;定义queryset 印象深刻的事&#xff1a;由于原来对于继承关系不太清楚&#xff0c;写接口 APIView/泛指GenericAPIView不太关注queryset没有设置渲染器&#xff1a;默认 [JSONRenderer,BrowsableAPIRenderer]BrowsableAPIRenderer&#xff…

iir数字滤波器_手把手教系列之一阶数字滤波器设计实现(附代码)

[导读] 前面分享了 IIR/FIR/mean/梳状数字滤波器的具体设计实现&#xff0c;这几种使用起来或许觉得计算量大&#xff0c;相对复杂。实际工程应用中通常有必要过滤来自传感器或音频流的数据&#xff0c;以抑制不必要的噪声。有的应用场景&#xff0c;可能只需要一个最简单的一阶…

正则表达式中$1,$2 ===算是什么意思

$1,$2...是表示的小括号里的内容 $1是第一个小括号里的 ,$2是第2个小括号里的 比如 /gai([\w]?)over([\d])/ 匹配 gainover123 $1 括号里的 n $2 第2个括号里的 123转载于:https://www.cnblogs.com/vertko/p/5888902.html

为什么以太坊能成为区块链2.0的代表之作?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链的学习进入到第四天&#xff0c;前三天学习比特币&#xff0c;分别从比特币的前世、货币属性和背后的区块链技术学习。 比特币是区块链的1…

(转)搭建企业内部yum仓库(centos6+centos7+epel源)

搭建企业内部yum仓库(centos6centos7epel源) 原文&#xff1a;https://www.cnblogs.com/nulige/p/6081192.html https://www.linuxidc.com/Linux/2017-11/148723.htm---------部署yum仓库与定制rpm包 1. 创建yum仓库目录mkdir -p /data/yum_data/cd /data/yum_data/#可以上传rp…

vs按f5没反应_《死神vs火影》中最受欢迎的游戏角色,仙鸣当之无愧上榜

hello&#xff01;大家好&#xff0c;又到了一日一度的杨某讲游戏环节啦&#xff0c;赶紧系好安全带&#xff0c;准备上车吧。《死神vs火影》作为一款深受广大群众欢迎的街机游戏&#xff0c;自然而然地涌现出了一系列知名游戏角色。那么&#xff0c;大多数人心目中最喜欢&…

IEC61850笔记--IEC61850应用入门(二)

IEC61850标准学习和调试&#xff0c;测试的记录文档&#xff0c;主要参考了IEC61850标准文档&#xff0c;《IEC61850应用入门(第二版)》&#xff0c;开源代码libIEC61850及libIEC61850说明文档。 IEC61850标准内容参考IEC61850标准文档&#xff0c;以及IEC61850标准介绍文档《I…

区块链赚钱的9种方式

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 物联网火了一段时间&#xff0c;人工智能火了一段时间&#xff0c;无人驾驶火了一段时间。现在&#xff0c;通通被区块链的风头盖住了&#xff0c;都…

7、在对象内部尽量直接访问实例变量

本文概要&#xff1a; 1、首先给出结论是&#xff1a;除了几种特殊情况外&#xff0c;在读取实例变量的时候采用直接访问的形式&#xff0c;而在设置实例变量的时候通过属性来做。 2、讲解了使用getter、setter的好处。 3、列举了几种上面提到的特殊情况&#xff1a;有时不能使…