Fixed #11632: Fixed the id for hidden initial widget so that it is different from the id for its visible counterpart. Thanks geber@datacollect.com and Mark Lavin.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@11826 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Karen Tracey 2009-12-12 18:18:31 +00:00
parent ac8da7b36f
commit 9c4bd2aa33
3 changed files with 14 additions and 1 deletions

View File

@ -173,6 +173,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
@ -268,6 +269,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>

View File

@ -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:
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):

View File

@ -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>
"""