ModelForm 中选择框的数据 以及 instance 参数
ModelForm 中选择框的数据
print(list(self.fields['customer'].choices))
# [('', '---------'), (1, '张飞'), (2, '关羽'), (3, '刘备')]
print(list(self.fields['customer'].widget.choices))
# [('', '---------'), (1, '张飞'), (2, '关羽'), (3, '刘备')]
# 修改数据限制显示的内容
# 修改之前的 customer字段的 选项列表
choices_list = [(i.pk, str(i)) for i in self.instance.consultant.customers.all()]
choices_list.insert(0, ('', '---------'))
self.fields['customer'].choices = choices_list
# 修改之前的 consultant 字段的 选项列表
self.fields['consultant'].choices = [(self.instance.consultant.pk,self.instance.consultant.name)]
在内存中创建 包含销售对象的 consultRecord 对象 数据库中没有改数据
# request.user_object 为 中间建中创建的个人对象
obj = models.ConsultRecord(consultant=request.user_object)
obj.save() # 新增数据到数据库中
# 通过 instance 传给 ModelForm 对象
instance 参数
# 创建 和 修改 客户的方法
def customer_edit(request, pk=None):
''' 创建 和 修改 客户的方法 '''
# 通过分组 参数 的 id 获取 要修改的对象
cus_obj = models.Customer.objects.filter(pk=pk).first()
# 把要修改 的对象通过 instance 传入form组件中 必须为本类的对象
form_obj = CustomerForm(instance=cus_obj)
if request.method == 'POST':
form_obj = CustomerForm(request.POST, instance=cus_obj)
if form_obj.is_valid():
# 如果 instance 有对象则是修改数据 没有就是 新增数据
form_obj.save()
# 获取到跳转过来的路径 如果有就重定向到此路径
# return_url = request.GET.get('return_url')
# if return_url:
# return redirect(reverse_url(request, return_url=return_url))
return redirect(rev_url(request, 'show:public_customer'))
return render(request, "form_edit.html", {'form_obj': form_obj, 'title': "修改用户" if cus_obj else '添加用户'})
ModelForm 中选择框的数据 以及 instance 参数的更多相关文章
- 在HTML下,如何为多个选择框提取数据并序列化
如果同时存在选择框及下拉框,如果用JQUERY获取相关数据呢? <form id="deploy-form"> <checkbox>多选框 <sele ...
- 解决vue中模态框内数据和外面的数据绑定的问题
1.做表格的修改,把整条数据传到模态框做修改,但是出现模态框改变数据没有保存时,表格的数据也会跟着改变,我想实现保存以后表格数据才会改变的功能. html:使用item整条数据都上传过去了,在upda ...
- 相同数据中选择id最大数据 的sql
select max(id)id ,name, age from tablename group by name, age
- 修改页面中显示出需要修改的数据(包括select选择框复显示)
页面中需要用到某个对象时,在底层代码中赋值,然后页面用java代码进行获取调用 如下截图: select复显示:根据后台方法赋值选择框 ,并设置初始值 按钮及选择框的禁用(五种方法): 方法一: $( ...
- ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
- View中选择的数据行中的部分数据传入到Controller中
将View中选择的数据行中的部分数据传入到Controller中 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NE ...
- ionic 下拉选择框中默认显示传入的参数
开发过程当中遇到一个有趣的问题,如果我在第一个页面需要把 item { "ownerId" : 1 } 传递给第二个页面,并挂在$scope下 $scope.item = $sta ...
- django modelform中的self.instance
在stackoverflow上看到一个问题,正好是我疑惑很久的相关问题. [原问题地址]https://stackoverflow.com/questions/18265023/self-instan ...
- jqGrid中选择的行的数据[转]
如何获取jqGrid中选择的行的数据? 下面可以获取选择一行的id,如果你选择多行,那下面的id是最后选择的行的id: var id=$(‘#gridTable’).jqGrid(‘getGridPa ...
随机推荐
- Docker实践:python应用容器化
一.前言 容器使用沙箱机制,互相隔离,优势在于让各个部署在容器的里的应用互不影响,独立运行,提供更高的安全性.本文主要介绍python应用(django)跑在docker容器里,编写dockerfil ...
- Java设计模式学习记录-桥接模式
前言 这次介绍结构型设计模式中的第二种模式,桥接模式. 使用桥接模式的目的就是为了解耦,松散的耦合更利于扩展,但是会增加相应的代码量和设计难度. 桥接模式 桥接模式是为了将抽象化与实现化解耦,让二者可 ...
- scikit-learn入门导航
scikit-learn是一个非常强大的机器学习库, 提供了很多常见机器学习算法的实现. scikit-learn可以通过pip进行安装: pip install -U scikit-learn 不过 ...
- [CF718C] Sasha and Array
Description 给定一个数列,维护两种操作 操作 \(1\),将区间 \([l,r]\) 的数字统一加 \(x\). 操作 \(2\),求 \(\sum \limits_{i=l}^r f(v ...
- Apollo 3 定时/长轮询拉取配置的设计
前言 如上图所示,Apollo portal 更新配置后,进行轮询的客户端获取更新通知,然后再调用接口获取最新配置.不仅仅只有轮询,还有定时更新(默认 5 分钟一次).目的就是让客户端能够稳定的获取到 ...
- vue-cli脚手架搭建项目简单入门一
搭建系统: Windows系统 简单了解Node.js.npm,安装Node.js,下载网址:http://nodejs.cn/download/ 查看node,npm安装成功与否.打开cmd命令行, ...
- [PHP] 算法-快速排序的PHP实现
快速排序: 1.基于二分的思想 2.第一个作为基准数,左右各一个指针,同时扫描,右边先走,找到比基准数小的停下 左边再走,找到比基准数大的停下,左右交换 3.当左右相遇的时候,把当前的和基准数调换,递 ...
- Eclipse快捷键 10个最有用的快捷键(转载收藏)
原文连接:https://www.cnblogs.com/iamfy/archive/2012/07/11/2586869.html Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级 ...
- http请求的headers详解
关于http请求的headers详解:这里以HTTP1.1为例结合postman返回的信息 1.Server →nginx/1.15.8 A name for the server 这是post ...
- js之全选即点击全选标签可选择全部复选框
目标效果:网页全选功能,即点击全选标签可选择全部复选框 实现代码如下 <!DOCTYPE html> <html lang="en"> <head&g ...