自定义Django Form中choicefield下拉菜单选取数据库内容实例
作者:slamx 发布时间:2024-01-25 09:02:02
标签:Django,Form,choicefield,数据库
工作中遇到的问题,自定义了一个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})
来源:https://blog.csdn.net/slamx/article/details/51095066
0
投稿
猜你喜欢
- Pygame是一个超好用的SDL绑定。自从有了Pygame,妈妈再也不用担心我内存泄漏了。但是这里有一个问题,Pygame的Movie模块已
- 一个简单的例子:将如下代码另存为.wsc文件,并右键“注册”(卸载时右键“不注册”)。<Component> <regis
- 如果你有个5、6 G 大小的文件,想把文件内容读出来做一些处理然后存到另外的文件去,你会使用什么进行处理呢?不用在线等,给几个错误示范:有人
- 目录一、列表求并集1. union_by二、列表求交集1. intersection_by三、列表求差集1. difference2. di
- ping 基本概念ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在
- 解决Microsoft VBScript 运行时错误 (0x800A0046) 没有权限的解决方案,0x800a0046错误。前段时间在做站
- WordPress默认登录页面:http://192.168.0.120/wordpress/wp-login.php 1、Chrome浏览
- 在 Python 中是没有原生数据类型支持时间的,日期与时间的操作需要借助三个模块,分别是 time、datetime、calendar。t
- strip()方法返回所有字符从开始及字符串的末尾(默认空格字符)被去除后的字符串的一个副本。语法以下是strip()方法的语法
- 在WEB开发中.我们可能都习惯使用下面的代码来获取客户端的IP地址: C#代码 //优先取得 * string IP = Request
- 一、匹配版本基于Camunda 7.16.0 + Springboot 2.5.8首先我们去官网找到camunda7.16对应的spring
- 导语电脑桌面文件太多查找起来比较花费时间,并且凌乱的电脑桌面也会影响工作心情,于是利用python根据时间自动建立当日文件夹,这样就可以把桌
- 一、Views文件夹 -> Shared文件夹下的 _Layout.cshtml 母版页@RenderBody当创建基于_Layout
- 图像素描特效图像素描特效主要经过以下几个步骤:调用cv.cvtColor()函数将彩 * 像灰度化处理;通过cv.GaussianBlur()
- 一、日志级别1. 级别定义logging模块提供了5种日志级别,分别为:CRITICAL>ERROR>WARNING>IN
- #coding:utf8import reimport urllibdef getHTML(url):
- 在使用django的modelform的时候,修改表单,图片在form表单显示的是一个链接。显示缩略图如下第一步:from django.f
- 在众多代码编辑工具中,我最喜欢的就是微软的vscode。首先它十分轻便,不吃硬件,运行非常顺畅;其次是其各种各样的插件使得编程效率蹭蹭地往上
- 前言本文主要给大家介绍了关于Python3用SMTP协议发送电子邮件的相关内容,在介绍如何使用python程序向指定邮箱发送邮件之前,我们需
- mysql优化表释放表空间方法一:optimize table table_name这是我们经常见到的方法,这里就不在过多介绍。方法二:al