您好,登錄后才能下訂單哦!
工作中遇到的問題,自定義了一個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})
以上這篇自定義Django Form中choicefield下拉菜單選取數據庫內容實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。