from django import newforms as forms class PrettyBaseForm (forms.BaseForm): class NormalRowFormatter(object): def _error_class(self, errors): if errors: return ' class="error"' else: return '' def __mod__(self, d): return u'<tr%s>' % self._error_class(d['errors']) \ + u'<th>%(label)s</th><td>%(field)s%(errors)s%(help_text)s</td></tr>' % d def as_table(self): return self._html_output( PrettyBaseForm.NormalRowFormatter(), u'<tr><td colspan="2">%s</td></tr>', # unused u'</td></tr>', u'<br />%s', False )