自定义Django Form中choicefield下拉菜单选取数据库内容实例


Posted in Python onMarch 13, 2020

工作中遇到的问题,自定义了一个forms.form表单,某项需要作出下拉菜单,下拉菜单中的选项需要从数据库(objectForm models)中提取.

form.py为:

class objectForm(forms.Form):
pre = choicefield(lable = "工作")

最后的解决办法:

1.定义一个函数

def get_object(request):
  r = [('', '----')]
  for obj in objectModels.objects.all():
    r = r + [(obj.id, obj.name)]
  return r

2.在views.py的视图函数中加入

form.fields['pre'].choices = get_object(request)

收工!

百度了很多Django Form的问题都没有得到解决,写出来方便后来人。

补充知识:django form表单select下拉菜单数据源实时更新(每次访问获取一次数据库内容)

重点是: Form类对象实例化的时候,在类里边__init()__函数中加入重新更新select数据源

from django.shortcuts import render,redirect
from app3 import models
from app3 import form
from django import forms
from django.forms import widgets
 
#静态字段,value_list获取列表[()]加元组返回值
 
 
class Fromdb(forms.Form):
  purpose = forms.CharField()
  user = forms.IntegerField(
    widget=widgets.Select()
    )
  #保证每次访问重新获取最新数据
  def __init__(self,*args,**kwargs):
    super(Fromdb,self).__init__(*args,**kwargs)
    self.fields["user"].widget.choices=models.Stu.objects.values_list("id", "name")
 
def formdb(request):
  stus = Fromdb()
  return render(request,"formdb.html",{"stus":stus})

以上这篇自定义Django Form中choicefield下拉菜单选取数据库内容实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Pyramid Mako模板引入helper对象的步骤方法
Nov 27 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
深入浅析python 中的匿名函数
May 21 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
对python while循环和双重循环的实例详解
Aug 23 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
Python tornado上传文件的功能
Mar 26 Python
python中rb含义理解
Jun 18 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 Python
django处理select下拉表单实例(从model到前端到post到form)
Mar 13 #Python
python实现俄罗斯方块游戏(改进版)
Mar 13 #Python
Python之Django自动实现html代码(下拉框,数据选择)
Mar 13 #Python
Tensorflow中的dropout的使用方法
Mar 13 #Python
python实现简单俄罗斯方块
Mar 13 #Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 #Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 #Python
You might like
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
读jQuery之五(取DOM元素)
2011/06/20 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
简单实现python聊天程序
2018/04/01 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
python实现三次样条插值
2018/12/17 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
一些Solaris面试题
2015/12/22 面试题
妈妈活动方案
2014/08/15 职场文书
一份文言文检讨书
2014/09/13 职场文书
幼儿园感谢信
2015/01/21 职场文书
廉政承诺书2015
2015/04/28 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB