您的位置:首页 > 编程语言 > Go语言

django.forms.widget-ChoiceInput

2015-10-29 10:55 399 查看
ChoiceInput主要是用来表示表单中radio和checkbox的。

?
我们先了解html的radio标签。

?
ChoiceInput类,负责输出一行<label>语句。

着重看render函数的输出:

?
label_for 是html中label标签中的for属性。

self.tag(attrs)负责输出<input>标签。

choice_label则负责label标签的展示文本。

label_for的属性值是由id_for_label类属性指定的,id_for_label则是尝试通过attrs.id属性。

?
注意__init__方法中, 如果在attrs参数指定了id, 它会自动添加index参数值的后缀。

然后进入函数tag(),增加type, name, value,checked='checked'属性。

回到__init__函数, 依次解释下每个参数的作用。

name: 负责input的name属性

value: 负责判断checked='checked'属性

attrs: 负责input的属性。

choice: 格式为(choice_value, choice_label), 分别表示input的value属性和label的文本。

index:负责如果attrs参数指定了id,则添加id的后缀。

?
RadioChoiceInput重新指定了input_type值, 并且重写了__init__方法,作用是将value改为文本 格式。

?
CheckboxChoiceInput重新指定input_type值。并且重写了is_checked( )和__init__方法,因为checkbox是可以多选的,所以value值是列表型的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: