ModelForm 中选择框的数据

  1. print(list(self.fields['customer'].choices))
  2. # [('', '---------'), (1, '张飞'), (2, '关羽'), (3, '刘备')]
  3. print(list(self.fields['customer'].widget.choices))
  4. # [('', '---------'), (1, '张飞'), (2, '关羽'), (3, '刘备')]
  5. # 修改数据限制显示的内容
  6. # 修改之前的 customer字段的 选项列表
  7. choices_list = [(i.pk, str(i)) for i in self.instance.consultant.customers.all()]
  8. choices_list.insert(0, ('', '---------'))
  9. self.fields['customer'].choices = choices_list
  10. # 修改之前的 consultant 字段的 选项列表
  11. self.fields['consultant'].choices = [(self.instance.consultant.pk,self.instance.consultant.name)]

在内存中创建 包含销售对象的 consultRecord 对象 数据库中没有改数据

  1. # request.user_object 为 中间建中创建的个人对象
  2. obj = models.ConsultRecord(consultant=request.user_object)
  3. obj.save() # 新增数据到数据库中
  4. # 通过 instance 传给 ModelForm 对象

instance 参数

  1. # 创建 和 修改 客户的方法
  2. def customer_edit(request, pk=None):
  3. ''' 创建 和 修改 客户的方法 '''
  4. # 通过分组 参数 的 id 获取 要修改的对象
  5. cus_obj = models.Customer.objects.filter(pk=pk).first()
  6. # 把要修改 的对象通过 instance 传入form组件中 必须为本类的对象
  7. form_obj = CustomerForm(instance=cus_obj)
  8. if request.method == 'POST':
  9. form_obj = CustomerForm(request.POST, instance=cus_obj)
  10. if form_obj.is_valid():
  11. # 如果 instance 有对象则是修改数据 没有就是 新增数据
  12. form_obj.save()
  13. # 获取到跳转过来的路径 如果有就重定向到此路径
  14. # return_url = request.GET.get('return_url')
  15. # if return_url:
  16. # return redirect(reverse_url(request, return_url=return_url))
  17. return redirect(rev_url(request, 'show:public_customer'))
  18. return render(request, "form_edit.html", {'form_obj': form_obj, 'title': "修改用户" if cus_obj else '添加用户'})

ModelForm 中选择框的数据 以及 instance 参数的更多相关文章

  1. 在HTML下,如何为多个选择框提取数据并序列化

    如果同时存在选择框及下拉框,如果用JQUERY获取相关数据呢? <form id="deploy-form"> <checkbox>多选框 <sele ...

  2. 解决vue中模态框内数据和外面的数据绑定的问题

    1.做表格的修改,把整条数据传到模态框做修改,但是出现模态框改变数据没有保存时,表格的数据也会跟着改变,我想实现保存以后表格数据才会改变的功能. html:使用item整条数据都上传过去了,在upda ...

  3. 相同数据中选择id最大数据 的sql

    select max(id)id ,name, age from tablename group by name, age

  4. 修改页面中显示出需要修改的数据(包括select选择框复显示)

    页面中需要用到某个对象时,在底层代码中赋值,然后页面用java代码进行获取调用 如下截图: select复显示:根据后台方法赋值选择框 ,并设置初始值 按钮及选择框的禁用(五种方法): 方法一: $( ...

  5. ASP.NET MVC搭建项目后台UI框架—8、将View中选择的数据行中的部分数据传入到Controller中

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  6. View中选择的数据行中的部分数据传入到Controller中

    将View中选择的数据行中的部分数据传入到Controller中   ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NE ...

  7. ionic 下拉选择框中默认显示传入的参数

    开发过程当中遇到一个有趣的问题,如果我在第一个页面需要把 item { "ownerId" : 1 } 传递给第二个页面,并挂在$scope下 $scope.item = $sta ...

  8. django modelform中的self.instance

    在stackoverflow上看到一个问题,正好是我疑惑很久的相关问题. [原问题地址]https://stackoverflow.com/questions/18265023/self-instan ...

  9. jqGrid中选择的行的数据[转]

    如何获取jqGrid中选择的行的数据? 下面可以获取选择一行的id,如果你选择多行,那下面的id是最后选择的行的id: var id=$(‘#gridTable’).jqGrid(‘getGridPa ...

随机推荐

  1. Tomcat8源码笔记(三)Catalina加载过程

    之前介绍过 Catalina加载过程是Bootstrap的load调用的  Tomcat8源码笔记(二)Bootstrap启动 按照Catalina的load过程,大致如下: 接下来一步步分析加载过程 ...

  2. scikit-learn入门导航

    scikit-learn是一个非常强大的机器学习库, 提供了很多常见机器学习算法的实现. scikit-learn可以通过pip进行安装: pip install -U scikit-learn 不过 ...

  3. Groovy学习笔记(1)读取CSV文件

      本篇分享讲展示如何在Groovy中读取CSV文件.   我们要读取的CSV文件foo.csv的内容如下:   Groovy代码如下: //import packages import java.i ...

  4. c# 正则格式化文本防止SQL注入

    /// <summary> /// 格式化文本(防止SQL注入) /// </summary> /// <param name="str">&l ...

  5. [PHP]算法- 判断是否为二叉搜索树的后序遍历序列的PHP实现

    二叉搜索树的后序遍历序列: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 思路: 1.后序遍历是 左右中 ...

  6. Spring基于XML方式的使用

    一.IoC配置 IoC的配置是通过Spring的xml文件的bean标签进行的. 1.bean标签介绍 bean标签一般是在xml文件进行配置的,xml文件一般样式如下: <?xml versi ...

  7. 【c++】删除string中指定的字符

    使用string::iterator(字符串迭代器)从开始 str.begin() 迭代到最后 str.end() ,再使用string.erase(const_iterator p)函数来删除迭代器 ...

  8. Python爬虫html解析工具beautifulSoup在pycharm中安装及失败的解决办法

    1.安装步骤: 首先,你要先进入pycharm的Project Interpreter界面,进入方法是:setting(ctrl+alt+s) ->Project Interpreter,Pro ...

  9. GIS基础知识

    投影转换 若两者地理坐标系不一致,需要设置七参数进行转换. 不同地方,七参数大小不一样,需要通过计算得到.

  10. 微信小程序测试二三事

    微信小程序虽是微信推出的新形态的产品,但是在测试思路上跟其他的传统测试,大相径庭.既然大相径庭,那我们该如何测试呢. 功能测试功能测试跟传统的web功能测试一样,不是app的功能测试哦.这是因为小程序 ...