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.
However,
- 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
name
attr is coupled to the name of the property used for the field.
- If the remote form uses silly names then my form object must also have properties with silly names which pollutes my application's code.
- Should those names happen to be reserved words in Python (e.g.
from
), then it is difficult or impossible to create a Django form object representation.
Is there a way to specify a different string to use for the 'name' attribute when the field is displayed? Thus, decoupling the HTML form from the class that represents it.
This would need two components:
- Override the name value in the widget
- Make the form read this value from request.POST when it is bound
I only need step 1 in this case, but step 2 is relevant to solve the problems I listed above more generally
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…