自定义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


猜你喜欢
- 从有道词典网页获取某单词的中文解释。import reimport urllibword=raw_input('input a wo
- 本文实例讲述了Python实现的人工神经网络算法。分享给大家供大家参考,具体如下:注意:本程序使用Python3编写,额外需要安装numpy
- 最近在做项目的时候经常会用到定时任务,由于我的项目是使用Java来开发,用的是SpringBoot框架,因此要实现这个定时任务其实并不难。后
- 语句SELECT * FROM 数据库A.dbo.表A a, 数据库B.dbo.表B b WHERE a.field=b.field&quo
- 写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下。方便使用1. C++ 读取文件#include<stdio
- 由于初学Django所以对于其特有的表单模板和models中的filefiled并不是特别熟悉。因此在本次开发中还是依照以往自己在html中
- 任务1、 Mini计算器看出来错误了吗,哈哈哈哈哈哈,那三个点自己加的,本质应该是函数折叠完整的代码:ef calc(a,b,op):? ?
- 析构函数当某个对象成为垃圾或者当对象被显式销毁时执行。PHP5中提供的析构函数是__destruct,其与构造方法__construct相对
- 首先是对一元函数求积分,使用Scipy下的integrate函数:from scipy import integratedef g(x):
- 打开文件import xlrddata = xlrd.open_workbook('路径')获取文件中所有工作表的名称。da
- “没 Javascript 就会死”的页面通常都会加入 noscript 标签用于提示用户开启脚本支持。 然而在 IE8 下,如果在 nos
- 一、安装环境PHPMailer 需要 PHP 的 sockets 扩展支持另外登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密的,
- --SQL正则替换函数 代码如下:CREATE function dbo.regexReplace ( @source ntext, --
- #!/usr/bin/env python# -*- coding:utf-8 -*-# *************************
- MySQL 创建数据库和创建数据表MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。在这之前,需要先安装好
- rpc有多种调用方式,http、json-rpc、tcp一、服务端在代码中,启动了三个服务package mainimport ("
- 1.函数调用# 1.调用函数,需要知道函数的名称和参数# 2.调用函数传入的参数需要和函数定义的参数数量和类型一致# 如调用abs函数pri
- #coding:utf-8from wsgiref.simple_server import make_serverdef RunServe
- Notes怀疑模型梯度 * ,想打印模型 loss 对各权重的导数看看。如果如果fit来训练的话,可以用keras.callbacks.Ten
- 当各位在安装、重装时出现could not start the service mysql error:0原因: 卸载mysql时并没有完全