1。通过widget来修改标签样式
widget=widgets.Select(choices=[1,2,3])
2.常用标签示例
multichoicefield
name=MultipleChoiceField( widget=widgets.SelectMultiple( attrs={ 'class1':'c1', 'class2': 'c2', 'class3': 'c3' } ) )
radio单选
gender=fields.ChoiceField( choices=[(1, '刚娘'), (2, '铁娘'), (3, '钢弹')], widget=widgets.RadioSelect ) choices的结构是,列表里面套元组,元组内有序号和响应的值
2.动态绑定数据
当从数据库中获取数据后,当数据库数据更新之后,form能否自动更新数据。
因为类属性在程序运行的时候就已经加载完成,当数据发生变化是,类属性的值不会发生改变。
解决方法:用实例化继承父类,然后在实例属性中加入这些方法,每次刷新的时候都是完成一次实例化,可以进行数据刷新
class Form1(forms.Form): user=fields.CharField( max_length=7, min_length=4, required=True, error_messages={ 'max_length':'太长了' }, label='haha',#会在user前面显示字符 initial='alex1',#默认值,返回页面时直接显示的值,可作为提示 localize=True, disabled=False, widget=widgets.Select() ) gender=fields.ChoiceField( choices=[(1, '刚娘'), (2, '铁娘'), (3, '钢弹')], widget=widgets.RadioSelect ) def __init__(self,*args,**kwargs): super(Form1, self).__init__(*args, **kwargs) self.fields['user'].widget.choices = models.Book.objects.values_list('price','name') 首先每次实例化的时候都会刷新一次,从数据库中拿东西,values_list得到的是列表形式,里面是元组,这里只是得到一个元组而已,赋给user这个标签的choice,然后在html中渲染体现