def _render_fieldset(self, fieldset, fields, normal_row, help_text_html, errors_on_separate_row): output, hidden_fields = [], [] if fieldset: output.append( normal_row % { 'errors': '', 'label': ' ', 'field': self.fieldset_template % { 'title': fieldset, 'section': slugify(fieldset), }, 'help_text': '', }) #for name, field in [i for i in self.fields.items() if i[0] in fields]: for name in fields: field = filter(lambda f: f[0] == name, self.fields.items())[0][1] bf = BoundField(self, field, name) bf_errors = self.error_class([ escape(error) for error in bf.errors ]) # Escape and cache in local variable. if bf.is_hidden: if bf_errors: top_errors.extend([ u'(Hidden field %s) %s' % (name, force_unicode(e)) for e in bf_errors ]) hidden_fields.append(unicode(bf)) else: if errors_on_separate_row and bf_errors: output.append(error_row % force_unicode(bf_errors)) if bf.label: label = escape(force_unicode(bf.label)) # Only add the suffix if the label does not end in # punctuation. if self.label_suffix: if label[-1] not in ':?.!': label += self.label_suffix label = bf.label_tag(label) or '' else: label = '' if field.help_text: help_text = help_text_html % force_unicode(field.help_text) else: help_text = u'' output.append( normal_row % { 'errors': force_unicode(bf_errors), 'label': force_unicode(label), 'field': unicode(bf), 'help_text': help_text, 'field_name': unicode(name), }) return output, hidden_fields