def render(self, name, value, attrs=None):
if value is None:
value = ''
extra_attrs = dict()
extra_attrs['type'] = self.input_type
extra_attrs['name'] = name
input_attrs = self.build_attrs(attrs, extra_attrs)
if value != '':
# Only add the 'value' attribute if a value is non-empty.
input_attrs['value'] = force_text(self._format_value(value))
input_attrs = {key: conditional_escape(val) for key, val in input_attrs.items()}
if not self.picker_id:
self.picker_id = (input_attrs.get('id', '') + '_pickers').replace(' ', '_')
self.div_attrs['id'] = self.picker_id
picker_id = conditional_escape(self.picker_id)
div_attrs = {key: conditional_escape(val) for key, val in self.div_attrs.items()}
icon_attrs = {key: conditional_escape(val) for key, val in self.icon_attrs.items()}
html = self.html_template % dict(div_attrs=flatatt(div_attrs),
input_attrs=flatatt(input_attrs),
icon_attrs=flatatt(icon_attrs))
if self.options:
js = self.js_template % dict(picker_id=picker_id, options=json_dumps(self.options or {}))
else:
js = ''
return mark_safe(force_text(html + js))
评论列表
文章目录