title: Change the widget of just one field in django-crispy-forms with the layout object AppendedText
body: <p>I am using <a href="http://django-crispy-forms.readthedocs.org/" rel="nofollow noreferrer">django-crispy-forms</a> to render the form of a model in <a href="https://www.djangoproject.com/" rel="nofollow noreferrer">django</a>. django-crispy-forms already integrates very well with <a href="http://twitter.github.com/bootstrap/" rel="nofollow noreferrer">Twitter Bootstrap</a> and has defined a layout object for the <code>AppendedText</code> widget: </p>
  
  <p><img src="https://django-crispy-forms.readthedocs.org/en/latest/_images/appended_text.png" alt="AppendedText widget"> </p>
  
  <p>I have the following model in my django <code>models.py</code></p>
  
  <pre><code>class Historia(models.Model):
      persona         = models.ForeignKey('Persona', 
                                    blank=False, 
                                    null=True,
                                    related_name='historias')
      fecha           = models.DateTimeField(unique=True, 
                                  auto_now_add=True)
      motivo          = models.TextField()
      peso            = models.DecimalField(blank=True,
                                     max_digits=5, decimal_places=2)
      talla           = models.IntegerField(blank=True)
      tension         = models.CharField(max_length=15)
      pulso           = models.IntegerField()
      diagnostico     = models.TextField()
      tratamiento     = models.TextField()
      pendiente       = models.TextField(blank=True)
  </code></pre>
  
  <p>and I define the following <code>modelform</code> in <code>forms.py</code>:</p>
  
  <pre><code>class HistoriaForm(django.forms.ModelForm):
      class Meta:
          model = models.Historia
  
      def __init__(self, *args, **kwargs):
          super(HistoriaForm, self).__init__(*args, **kwargs)
  
          self.helper = FormHelper(self)
          self.helper.form_class = 'form-horizontal'
          self.helper.form_tag = True
          self.helper.form_id = 'nueva_historia_form'
          self.helper.form_action = 'nueva_historia'
  
          self.helper.form_show_errors = True
          self.helper.error_text_inline = False
  
          self.helper.add_input(Submit('crear', 'Crear'))
  </code></pre>
  
  <p>My question is how can I change the widget of the <code>peso</code> field without having to create a new <code>widget</code> subclass since <code>django-crispy-forms</code> already defines a layout object. Please also note that I do not want to enumerate all other fields in order to do this like:</p>
  
  <pre><code>self.helper.layout = Layout(
              Fieldset(
                  'Legend',
                  'nombre',
                  'apellido',
                  AppendedText('peso', 'kg')
              ),
              ButtonHolder(
                  Submit('submit', 'Submit', css_class='button white')
              )
          )
  </code></pre>
  
  <p>since I will have to keep editing the helper layout if I decide to add new fields in my model from which standard widgets are already very useful.</p>
  
  <p><strong>Edit:</strong> I have also seen the methods to access the layouts in a helper like <code>self.helper.layout[0] = AppendedText('peso', 'kg')</code> but I do not know the index of the field I would like to change and it would be much nicer if I could just write <code>self.helper.layout['peso'] = AppendedText('peso', 'kg')</code></p>