class ShowOnly(forms.Widget): """ Show only the data do NOT have a input field """ input_type = 'hidden' def render(self, name, value, attrs=None): from django.utils.safestring import mark_safe from django.utils.encoding import force_unicode if value is None: value = '' final_attrs = self.build_attrs(attrs, type=self.input_type, name=name) if value != '': # Only add the 'value' attribute if a value is non-empty. value = force_unicode(value) final_attrs['value'] = force_unicode(value) return mark_safe(u'%s' % (forms.util.flatatt(final_attrs),value)) # Example usage: class SomeForm(forms.Form): justShowThis = forms.CharField(required = False, widget = ShowOnly(), initial = 'Input (not editable)', label = 'My nice Label')