最新国产好看的视频,伊人天堂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í)更新(每次訪問(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()
    )
  #保證每次訪問(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)論

广东省| 喀喇沁旗| 武汉市| 东乡族自治县| 越西县| 泗阳县| 子洲县| 德兴市| 辽中县| 获嘉县| 祁连县| 兴城市| 太和县| 郑州市| 金阳县| 黔南| 南城县| 延长县| 娱乐| 阳城县| 林西县| 肥东县| 廊坊市| SHOW| 新宾| 阳曲县| 积石山| 南充市| 丹江口市| 尚志市| 广水市| 义马市| 奈曼旗| 四川省| 昌邑市| 徐州市| 阳西县| 尉犁县| 兴隆县| 崇仁县| 扬州市|