In [1]:
from django.forms import modelform_factory
from django.forms import Textarea

In [28]:
m=modelform_factory(Car,exclude=([]), widgets={
        "BigIntegerField": Textarea(attrs={ 'class': 'form-control' })
    } )

In [29]:
for i in m():
    print i
    print "__________"


<textarea class="form-control" cols="40" id="id_BigIntegerField" name="BigIntegerField" rows="10">
</textarea>
__________
<input checked="checked" id="id_BooleanField" name="BooleanField" type="checkbox" />
__________
<input id="id_CharField" maxlength="10" name="CharField" type="text" />
__________
<input id="id_DateField" name="DateField" type="text" />
__________
<input id="id_DateTimeField" name="DateTimeField" type="text" />
__________
<input id="id_DecimalField" name="DecimalField" step="0.01" type="number" />
__________
<input id="id_EmailField" maxlength="254" name="EmailField" type="email" />
__________
<input id="id_FileField" name="FileField" type="file" />
__________
<select id="id_FilePathField" name="FilePathField">
<option value="" selected="selected">---------</option>
</select>
__________
<input id="id_FloatField" name="FloatField" step="any" type="number" />
__________
<select id="id_ForeignKey" name="ForeignKey">
<option value="" selected="selected">---------</option>
<option value="1">customer1</option>
<option value="2">customer2</option>
<option value="3">1</option>
<option value="4">2</option>
<option value="5">3</option>
<option value="6">4</option>
<option value="7">5</option>
<option value="8">6</option>
<option value="9">7</option>
<option value="10">8</option>
<option value="11">9</option>
</select>
__________
<input id="id_ImageField" name="ImageField" type="file" />
__________
<input id="id_IntegerField" name="IntegerField" type="number" />
__________
<input id="id_GenericIPAddressField" name="GenericIPAddressField" type="text" />
__________
<select id="id_NullBooleanField" name="NullBooleanField">
<option value="1" selected="selected">Unknown</option>
<option value="2">Yes</option>
<option value="3">No</option>
</select>
__________
<input id="id_PositiveIntegerField" min="0" name="PositiveIntegerField" type="number" />
__________
<input id="id_PositiveSmallIntegerField" min="0" name="PositiveSmallIntegerField" type="number" />
__________
<input id="id_SlugField" maxlength="50" name="SlugField" type="text" />
__________
<input id="id_SmallIntegerField" name="SmallIntegerField" type="number" />
__________
<textarea cols="40" id="id_TextField" name="TextField" rows="10">
</textarea>
__________
<input id="id_TimeField" name="TimeField" type="text" />
__________
<input id="id_URLField" maxlength="200" name="URLField" type="url" />
__________
<input id="id_x" name="x" step="0.01" type="number" required />
__________
<input id="id_y" name="y" step="0.01" type="number" required />
__________

In [46]:
Car._meta.get_field('x').max_digits


Out[46]:
3

In [59]:
m._meta.widgets['BigIntegerField'].attrs


Out[59]:
{'class': 'form-control', u'cols': u'40', u'rows': u'10'}

In [71]:
x=m.base_fields['x']

In [72]:
x.decimal_places


Out[72]:
2

In [78]:
x.widget.attrs['class']="form-group"

In [80]:
x.widget.attrs


Out[80]:
{'class': 'form-group', u'step': '0.01'}

In [81]:
for i in m():
    print i
    print "__________"


<textarea class="form-control" cols="40" id="id_BigIntegerField" name="BigIntegerField" rows="10">
</textarea>
__________
<input checked="checked" id="id_BooleanField" name="BooleanField" type="checkbox" />
__________
<input id="id_CharField" maxlength="10" name="CharField" type="text" />
__________
<input id="id_DateField" name="DateField" type="text" />
__________
<input id="id_DateTimeField" name="DateTimeField" type="text" />
__________
<input id="id_DecimalField" name="DecimalField" step="0.01" type="number" />
__________
<input id="id_EmailField" maxlength="254" name="EmailField" type="email" />
__________
<input id="id_FileField" name="FileField" type="file" />
__________
<select id="id_FilePathField" name="FilePathField">
<option value="" selected="selected">---------</option>
</select>
__________
<input id="id_FloatField" name="FloatField" step="any" type="number" />
__________
<select id="id_ForeignKey" name="ForeignKey">
<option value="" selected="selected">---------</option>
<option value="1">customer1</option>
<option value="2">customer2</option>
<option value="3">1</option>
<option value="4">2</option>
<option value="5">3</option>
<option value="6">4</option>
<option value="7">5</option>
<option value="8">6</option>
<option value="9">7</option>
<option value="10">8</option>
<option value="11">9</option>
</select>
__________
<input id="id_ImageField" name="ImageField" type="file" />
__________
<input id="id_IntegerField" name="IntegerField" type="number" />
__________
<input id="id_GenericIPAddressField" name="GenericIPAddressField" type="text" />
__________
<select id="id_NullBooleanField" name="NullBooleanField">
<option value="1" selected="selected">Unknown</option>
<option value="2">Yes</option>
<option value="3">No</option>
</select>
__________
<input id="id_PositiveIntegerField" min="0" name="PositiveIntegerField" type="number" />
__________
<input id="id_PositiveSmallIntegerField" min="0" name="PositiveSmallIntegerField" type="number" />
__________
<input id="id_SlugField" maxlength="50" name="SlugField" type="text" />
__________
<input id="id_SmallIntegerField" name="SmallIntegerField" type="number" />
__________
<textarea cols="40" id="id_TextField" name="TextField" rows="10">
</textarea>
__________
<input id="id_TimeField" name="TimeField" type="text" />
__________
<input id="id_URLField" maxlength="200" name="URLField" type="url" />
__________
<input class="form-group" id="id_x" name="x" step="0.01" type="number" required />
__________
<input id="id_y" name="y" step="0.01" type="number" required />
__________

In [86]:
for i in m.base_fields:
    print i 
    m.base_fields[i].widget.attrs['class']="form-group"
    print "  %s"%m.base_fields[i].widget.attrs


BigIntegerField
  {u'rows': u'10', u'cols': u'40', 'class': 'form-group'}
BooleanField
  {'class': 'form-group'}
CharField
  {'class': 'form-group', u'maxlength': '10'}
DateField
  {'class': 'form-group'}
DateTimeField
  {'class': 'form-group'}
DecimalField
  {u'step': '0.01', 'class': 'form-group'}
EmailField
  {'class': 'form-group', u'maxlength': '254'}
FileField
  {'class': 'form-group'}
FilePathField
  {'class': 'form-group'}
FloatField
  {u'step': u'any', 'class': 'form-group'}
ForeignKey
  {'class': 'form-group'}
ImageField
  {'class': 'form-group'}
IntegerField
  {'class': 'form-group'}
GenericIPAddressField
  {'class': 'form-group'}
NullBooleanField
  {'class': 'form-group'}
PositiveIntegerField
  {'class': 'form-group', u'min': 0}
PositiveSmallIntegerField
  {'class': 'form-group', u'min': 0}
SlugField
  {'class': 'form-group', u'maxlength': '50'}
SmallIntegerField
  {'class': 'form-group'}
TextField
  {u'rows': u'10', u'cols': u'40', 'class': 'form-group'}
TimeField
  {'class': 'form-group'}
URLField
  {'class': 'form-group', u'maxlength': '200'}
x
  {u'step': '0.01', 'class': 'form-group'}
y
  {u'step': '0.01', 'class': 'form-group'}

In [ ]:
for i in m.base_fields:
    print i 
    print "  %s"%m.base_fields[i].widget.attrs