rendered paste bodyfrom django.newforms.util import ErrorListfrom django.newforms.widgets import RadioFieldRenderer, RadioSelectfrom django.newforms.fields import BooleanFieldfrom django.utils.safestring import mark_safefrom django.utils.encoding import force_unicodeclass ImgErrorList(ErrorList): def __unicode__(self): return self.with_img() def with_img(self): if not self: return u'' return u'<div class="errorlist">%s</div>' % u''.join([u'<div class="error"><img src="http://pybsd/media/images/error-bullet.png" alt="Error">%s</div>' % e for e in self])class InlineRadioRenderer(RadioFieldRenderer): def render(self): return mark_safe(u'<div class="radio">%s</div>' % u''.join([u'<span>%s</span>' % force_unicode(w) for w in self])) class YesNoRadioSelect(RadioSelect): renderer = InlineRadioRenderer choices = ((True, 'Yes'), (False, 'No')) attrs = {'class': 'radio'} class YesNoBooleanField(BooleanField): widget = YesNoRadioSelect def clean(self, value): if value == 'False': return False return bool(value)