diff --git a/AUTHORS b/AUTHORS index eb13f99ca6c..8ba80a96e89 100644 --- a/AUTHORS +++ b/AUTHORS @@ -173,6 +173,7 @@ answer newbie questions, and generally made Django that much better: Alex Gaynor Andy Gayton Idan Gazit + geber@datacollect.com Baishampayan Ghose Dimitris Glezos glin@seznam.cz @@ -268,6 +269,7 @@ answer newbie questions, and generally made Django that much better: Finn Gruwier Larsen Lau Bech Lauritzen Rune Rønde Laursen + Mark Lavin Eugene Lazutkin lcordier@point45.com Jeong-Min Lee diff --git a/django/forms/forms.py b/django/forms/forms.py index 0b7c2e23383..705058a6e6c 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 bf9623fe771..b204580131f 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() + + """