summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2011-02-08 12:00:21 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2011-02-08 12:00:21 +0000
commit74ffca17e2ca6a9f061913797efeebbc578692c5 (patch)
tree442589d03357a6d386e932c392b681c4a3152541 /django
parenta105ca5d7a232edd4713f37fbbe9ee3fec5f9e77 (diff)
Fixed #10573 -- Corrected autofocus problem in admin when the first widget displayed is a multiwidget. Thanks to rduffield for the report, and to Ramiro and Julien Phalip for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15452 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/templates/admin/change_form.html6
-rw-r--r--django/forms/forms.py11
2 files changed, 14 insertions, 3 deletions
diff --git a/django/contrib/admin/templates/admin/change_form.html b/django/contrib/admin/templates/admin/change_form.html
index 8f8dfe6143..fb278b42be 100644
--- a/django/contrib/admin/templates/admin/change_form.html
+++ b/django/contrib/admin/templates/admin/change_form.html
@@ -17,8 +17,8 @@
{% block breadcrumbs %}{% if not is_popup %}
<div class="breadcrumbs">
<a href="../../../">{% trans "Home" %}</a> &rsaquo;
- <a href="../../">{{ app_label|capfirst|escape }}</a> &rsaquo;
- {% if has_change_permission %}<a href="../">{{ opts.verbose_name_plural|capfirst }}</a>{% else %}{{ opts.verbose_name_plural|capfirst }}{% endif %} &rsaquo;
+ <a href="../../">{{ app_label|capfirst|escape }}</a> &rsaquo;
+ {% if has_change_permission %}<a href="../">{{ opts.verbose_name_plural|capfirst }}</a>{% else %}{{ opts.verbose_name_plural|capfirst }}{% endif %} &rsaquo;
{% if add %}{% trans "Add" %} {{ opts.verbose_name }}{% else %}{{ original|truncatewords:"18" }}{% endif %}
</div>
{% endif %}{% endblock %}
@@ -60,7 +60,7 @@
{% submit_row %}
{% if adminform and add %}
- <script type="text/javascript">document.getElementById("{{ adminform.first_field.auto_id }}").focus();</script>
+ <script type="text/javascript">document.getElementById("{{ adminform.first_field.id_for_label }}").focus();</script>
{% endif %}
{# JavaScript for prepopulated fields #}
diff --git a/django/forms/forms.py b/django/forms/forms.py
index 1cf6f2a3a2..f776861948 100644
--- a/django/forms/forms.py
+++ b/django/forms/forms.py
@@ -522,3 +522,14 @@ class BoundField(StrAndUnicode):
return self.html_name
return ''
auto_id = property(_auto_id)
+
+ def _id_for_label(self):
+ """
+ Wrapper around the field widget's `id_for_label` class method.
+ Useful, for example, for focusing on this field regardless of whether
+ it has a single widget or a MutiWidget.
+ """
+ widget = self.field.widget
+ id_ = widget.attrs.get('id') or self.auto_id
+ return widget.id_for_label(id_)
+ id_for_label = property(_id_for_label)