日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

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

發(fā)布時(shí)間:2024/7/23 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python下拉菜单_自定义Django Form中choicefield下拉菜单选取数据库内容实例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

工作中遇到的問題,自定義了一個(gè)forms.form表單,某項(xiàng)需要作出下拉菜單,下拉菜單中的選項(xiàng)需要從數(shù)據(jù)庫(kù)(objectForm models)中提取.

form.py為:

class objectForm(forms.Form):

pre = choicefield(lable = "工作")

最后的解決辦法:

1.定義一個(gè)函數(shù)

def get_object(request):

r = [('', '----')]

for obj in objectModels.objects.all():

r = r + [(obj.id, obj.name)]

return r

2.在views.py的視圖函數(shù)中加入

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

收工!

百度了很多Django Form的問題都沒有得到解決,寫出來(lái)方便后來(lái)人。

補(bǔ)充知識(shí):django form表單select下拉菜單數(shù)據(jù)源實(shí)時(shí)更新(每次訪問獲取一次數(shù)據(jù)庫(kù)內(nèi)容)

重點(diǎn)是: Form類對(duì)象實(shí)例化的時(shí)候,在類里邊__init()__函數(shù)中加入重新更新select數(shù)據(jù)源

from django.shortcuts import render,redirect

from app3 import models

from app3 import form

from django import forms

from django.forms import widgets

#靜態(tài)字段,value_list獲取列表[()]加元組返回值

class Fromdb(forms.Form):

purpose = forms.CharField()

user = forms.IntegerField(

widget=widgets.Select()

)

#保證每次訪問重新獲取最新數(shù)據(jù)

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下拉菜單選取數(shù)據(jù)庫(kù)內(nèi)容實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

總結(jié)

以上是生活随笔為你收集整理的python下拉菜单_自定义Django Form中choicefield下拉菜单选取数据库内容实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。