Skip to content

Commit

Permalink
[1.1.X] Fixed #11632: Fixed the id for hidden initial widget so that …
Browse files Browse the repository at this point in the history
…it is different from the id for its visible counterpart. Thanks geber@datacollect.com and Mark Lavin.

r11826 from trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@11827 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
kmtracey committed Dec 12, 2009
1 parent c1a8bd6 commit 8bb3763
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
2 changes: 2 additions & 0 deletions AUTHORS
Expand Up @@ -171,6 +171,7 @@ answer newbie questions, and generally made Django that much better:
Alex Gaynor <alex.gaynor@gmail.com> Alex Gaynor <alex.gaynor@gmail.com>
Andy Gayton <andy-django@thecablelounge.com> Andy Gayton <andy-django@thecablelounge.com>
Idan Gazit Idan Gazit
geber@datacollect.com
Baishampayan Ghose Baishampayan Ghose
Dimitris Glezos <dimitris@glezos.com> Dimitris Glezos <dimitris@glezos.com>
glin@seznam.cz glin@seznam.cz
Expand Down Expand Up @@ -265,6 +266,7 @@ answer newbie questions, and generally made Django that much better:
Finn Gruwier Larsen <finn@gruwier.dk> Finn Gruwier Larsen <finn@gruwier.dk>
Lau Bech Lauritzen Lau Bech Lauritzen
Rune Rønde Laursen <runerl@skjoldhoej.dk> Rune Rønde Laursen <runerl@skjoldhoej.dk>
Mark Lavin <markdlavin@gmail.com>
Eugene Lazutkin <http://lazutkin.com/blog/> Eugene Lazutkin <http://lazutkin.com/blog/>
lcordier@point45.com lcordier@point45.com
Jeong-Min Lee <falsetru@gmail.com> Jeong-Min Lee <falsetru@gmail.com>
Expand Down
6 changes: 5 additions & 1 deletion django/forms/forms.py
Expand Up @@ -343,6 +343,7 @@ def __init__(self, form, field, name):
self.name = name self.name = name
self.html_name = form.add_prefix(name) self.html_name = form.add_prefix(name)
self.html_initial_name = form.add_initial_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: if self.field.label is None:
self.label = pretty_name(name) self.label = pretty_name(name)
else: else:
Expand Down Expand Up @@ -374,7 +375,10 @@ def as_widget(self, widget=None, attrs=None, only_initial=False):
attrs = attrs or {} attrs = attrs or {}
auto_id = self.auto_id auto_id = self.auto_id
if auto_id and 'id' not in attrs and 'id' not in widget.attrs: 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: if not self.form.is_bound:
data = self.form.initial.get(self.name, self.field.initial) data = self.form.initial.get(self.name, self.field.initial)
if callable(data): if callable(data):
Expand Down
7 changes: 7 additions & 0 deletions tests/regressiontests/forms/forms.py
Expand Up @@ -1807,4 +1807,11 @@
>>> [f.name for f in form.visible_fields()] >>> [f.name for f in form.visible_fields()]
['artist', 'name'] ['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>
""" """

0 comments on commit 8bb3763

Please sign in to comment.