自定義Django Form中choicefield下拉菜單選取數(shù)據(jù)庫內(nèi)容實(shí)例
工作中遇到的問題,自定義了一個(gè)forms.form表單,某項(xiàng)需要作出下拉菜單,下拉菜單中的選項(xiàng)需要從數(shù)據(jù)庫(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的問題都沒有得到解決,寫出來方便后來人。
補(bǔ)充知識:django form表單select下拉菜單數(shù)據(jù)源實(shí)時(shí)更新(每次訪問獲取一次數(shù)據(jù)庫內(nèi)容)
重點(diǎn)是: Form類對象實(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ù)庫內(nèi)容實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python matplotlib圖例放在外側(cè)保存時(shí)顯示不完整問題解決
這篇文章主要介紹了Python matplotlib圖例放在外側(cè)保存時(shí)顯示不完整問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07關(guān)于Matplotlib繪制動(dòng)態(tài)實(shí)時(shí)曲線的方法改進(jìn)指南
這篇文章主要給大家介紹了關(guān)于Matplotlib繪制動(dòng)態(tài)實(shí)時(shí)曲線的相關(guān)資料,matplotlib是python里最popular的畫圖工具,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-06-0616中Python機(jī)器學(xué)習(xí)類別特征處理方法總結(jié)
類別型特征(categorical?feature)主要是指職業(yè),血型等在有限類別內(nèi)取值的特征。在這篇文章中,小編將給大家分享一下16種類別特征處理方法,需要的可以參考一下2022-09-09