def render(self, name, value, attrs=None):
        if self.is_localized:
            for widget in self.widgets:
                widget.is_localized = self.is_localized
        # value is a list of values, each corresponding to a widget
        # in self.widgets.
        if not isinstance(value, list):
            value = self.decompress(value)
        output = [u'<span id="%s_%s">' % (u'multi', name)]
        final_attrs = self.build_attrs(attrs)
        id_ = final_attrs.get('id', None)
        for i, widget in enumerate(self.widgets):
            try:
                widget_value = value[i]
            except __HOLE__:
                widget_value = None
            if id_:
                final_attrs = dict(final_attrs, id=id_)
            output.append(widget.render(name, widget_value, final_attrs))
        output.append(u'</span>')
        return mark_safe(self.format_output(output))
dataset/ETHPy150Open treeio/treeio/treeio/core/ajax/converter.py/MultiHiddenWidget.render