diff options
| -rw-r--r-- | AUTHORS | 2 | ||||
| -rw-r--r-- | django/forms/forms.py | 6 | ||||
| -rw-r--r-- | tests/regressiontests/forms/forms.py | 7 |
3 files changed, 14 insertions, 1 deletions
@@ -171,6 +171,7 @@ answer newbie questions, and generally made Django that much better: Alex Gaynor <alex.gaynor@gmail.com> Andy Gayton <andy-django@thecablelounge.com> Idan Gazit + geber@datacollect.com Baishampayan Ghose Dimitris Glezos <dimitris@glezos.com> glin@seznam.cz @@ -265,6 +266,7 @@ answer newbie questions, and generally made Django that much better: Finn Gruwier Larsen <finn@gruwier.dk> Lau Bech Lauritzen Rune Rønde Laursen <runerl@skjoldhoej.dk> + Mark Lavin <markdlavin@gmail.com> Eugene Lazutkin <http://lazutkin.com/blog/> lcordier@point45.com Jeong-Min Lee <falsetru@gmail.com> diff --git a/django/forms/forms.py b/django/forms/forms.py index 0b7c2e2338..705058a6e6 100644 --- a/django/forms/forms.py +++ b/django/forms/forms.py @@ -343,6 +343,7 @@ class BoundField(StrAndUnicode): self.name = name self.html_name = form.add_prefix(name) self.html_initial_name = form.add_initial_prefix(name) + self.html_initial_id = form.add_initial_prefix(self.auto_id) if self.field.label is None: self.label = pretty_name(name) else: @@ -374,7 +375,10 @@ class BoundField(StrAndUnicode): attrs = attrs or {} auto_id = self.auto_id if auto_id and 'id' not in attrs and 'id' not in widget.attrs: - attrs['id'] = auto_id + if not only_initial: + attrs['id'] = auto_id + else: + attrs['id'] = self.html_initial_id if not self.form.is_bound: data = self.form.initial.get(self.name, self.field.initial) if callable(data): diff --git a/tests/regressiontests/forms/forms.py b/tests/regressiontests/forms/forms.py index bf9623fe77..b204580131 100644 --- a/tests/regressiontests/forms/forms.py +++ b/tests/regressiontests/forms/forms.py @@ -1807,4 +1807,11 @@ True >>> [f.name for f in form.visible_fields()] ['artist', 'name'] +# Hidden initial input gets its own unique id ################################ + +>>> class MyForm(Form): +... field1 = CharField(max_length=50, show_hidden_initial=True) +>>> print MyForm() +<tr><th><label for="id_field1">Field1:</label></th><td><input id="id_field1" type="text" name="field1" maxlength="50" /><input type="hidden" name="initial-field1" id="initial-id_field1" /></td></tr> + """ |
