最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

自定義Django Form中choicefield下拉菜單選取數(shù)據(jù)庫(kù)內(nèi)容實(shí)例

 更新時(shí)間:2020年03月13日 09:02:35   作者:slamx  
這篇文章主要介紹了自定義Django Form中choicefield下拉菜單選取數(shù)據(jù)庫(kù)內(nèi)容實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

工作中遇到的問(wèn)題,自定義了一個(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的問(wèn)題都沒(méi)有得到解決,寫(xiě)出來(lái)方便后來(lái)人。

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

重點(diǎn)是: Form類(lèi)對(duì)象實(shí)例化的時(shí)候,在類(lèi)里邊__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()
    )
  #保證每次訪(fǎng)問(wèn)重新獲取最新數(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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

文水县| 海原县| 乌拉特后旗| 南投县| 木兰县| 墨脱县| 当涂县| 文山县| 开鲁县| 会东县| 阿图什市| 富宁县| 斗六市| 黔西县| 伊金霍洛旗| 阿坝县| 平乡县| 台中县| 珲春市| 新密市| 申扎县| 合作市| 洮南市| 本溪市| 安平县| 利川市| 合肥市| 上杭县| 沾化县| 五大连池市| 正宁县| 龙泉市| 灵宝市| 湟源县| 郴州市| 河东区| 麻阳| 海淀区| 水富县| 淄博市| 南溪县|