def add_css_classes(f, **kwargs): """ Formfield callback that adds a CSS class to every field indicating what kind of field it is. For example, all CharField inputs will get a class of "vCharField". If the field's widget already has a "class" attribute, it will be left alone. Example: class MyForm(forms.ModelForm): formfield_callback = add_css_classes """ field = f.formfield(**kwargs) if field and 'class' not in field.widget.attrs: field.widget.attrs['class'] = 'v%s' % field.__class__.__name__ return field