[TOC=1,5] >[success] # select/checkbox/radio >[danger] ##### select 除了使用提供的,还以用CharField自定制 * 只适合单选也可以用下面的CharField,返回字符串,因为定制属性 ~~~ xbd = fields.CharField( widget = widgets.Select(choices=[(1,"鸟")]) ) ~~~ * 也可以用下面的CharField,返回数字 ~~~ xbd = fields.IntegerField( widget=widgets.Select(choices=[(1, "鸟")]) ) ~~~ >[danger] ##### Checkbox * 单选时设置value属性 ~~~ xbd = fields.CharField( widget = widgets.CheckboxInput({'value':'1'}) ) ~~~ * 多选时 ~~~ xdb = fields.MultipleChoiceField( initial=[2,], choices=[(1, '大连'), (2, "北京")], widget=widgets.CheckboxSelectMultiple ) ~~~ >[danger] ##### radio * 单radio,值为字符串 ~~~ user = fields.CharField( initial=2, widget=widgets.RadioSelect(choices=((1,'上海'),(2,'北京'),)) ) ~~~ * 单radio,值为字符串 ~~~ user = fields.ChoiceField( choices=((1, '上海'), (2, '北京'),), initial=2, widget=widgets.RadioSelect ) ~~~ >[success] # 设置select 实时读取数据库内容 ~~~ class tupdata(forms.Form): def __init__(self,*args,**kwargs): super(tupdata,self).__init__(*args,**kwargs) self.fields['xdb'].widget.choices = models.UserInfo.objects.values_list('id','usernmae') xdb = fields.CharField( widget =widgets.Select(), label = "111", ) def test_updata(reuqest): obj = tupdata() return render(reuqest,"test1.html",{'obj1':obj}) ~~~