title: Override Django form field's name attr
body: <p>I've built a Django form that submits to a page on another domain (that I don't control). The idea is that I have a nicely styled, neatly generated form that fits neatly into my own site and takes the user elsewhere when it is submitted.</p>
  
  <p>However,</p>
  
  <ul>
  <li>If that other form changes the names of any of its fields, I need to change the names of the fields in my form and then change those names everywhere else in my application - since the <code>name</code> attr is coupled to the name of the property used for the field.</li>
  <li>If the remote form uses silly names then my form object must also have properties with silly names which pollutes my application's code.</li>
  <li>Should those names happen to be <a href="https://stackoverflow.com/questions/7767317/how-to-declare-a-form-field-in-django-if-it-has-the-same-name-as-a-python-keywo">reserved words in Python</a> (e.g. <code>from</code>), then it is difficult or impossible to create a Django form object representation.</li>
  </ul>
  
  <p><strong>Is there a way to specify a different string to use for the 'name' attribute when the field is displayed?</strong> Thus, decoupling the HTML form from the class that represents it.</p>
  
  <p>This would need two components:</p>
  
  <ol>
  <li>Override the name value in the widget</li>
  <li>Make the form read this value from request.POST when it is bound</li>
  </ol>
  
  <p>I only need step 1 in this case, but step 2 is relevant to solve the problems I listed above more generally</p>