1. Luke Plant
  2. django


russ...@bcc190cf-cafb-0310-a4f2-bffc1f526a37  committed 7d2c00e

[1.2.X] Tweaked the changes from changeset r15580 so as to avoid introducing a backwards incompatible context change to the change_list_results template. Refs #13126. Thanks to Sean Brant for the report.

Backport of r15593 from trunk.

  • Participants
  • Parent commits 34cf6f0
  • Branches releases/1.2.X

Comments (0)

Files changed (2)

File django/contrib/admin/templates/admin/change_list_results.html

View file
 {% for result in results %}
 {% if result.form.non_field_errors %}
-    <tr><td colspan="{{ result.row|length }}">{{ result.form.non_field_errors }}</td></tr>
+    <tr><td colspan="{{ result|length }}">{{ result.form.non_field_errors }}</td></tr>
 {% endif %}
-<tr class="{% cycle 'row1' 'row2' %}">{% for item in result.row %}{{ item }}{% endfor %}</tr>
+<tr class="{% cycle 'row1' 'row2' %}">{% for item in result %}{{ item }}{% endfor %}</tr>
 {% endfor %}

File django/contrib/admin/templatetags/admin_list.py

View file
     if form and not form[cl.model._meta.pk.name].is_hidden:
         yield mark_safe(u'<td>%s</td>' % force_unicode(form[cl.model._meta.pk.name]))
+class ResultList(list):
+    # Wrapper class used to return items in a list_editable
+    # changelist, annotated with the form object for error
+    # reporting purposes. Needed to maintain backwards
+    # compatibility with existing admin templates.
+    def __init__(self, form, *items):
+        self.form = form
+        super(ResultList, self).__init__(*items)
 def results(cl):
     if cl.formset:
         for res, form in zip(cl.result_list, cl.formset.forms):
-            yield {'row': list(items_for_result(cl, res, form)), 'form': form}
+            yield ResultList(form, items_for_result(cl, res, form))
         for res in cl.result_list:
-            yield {'row': list(items_for_result(cl, res, None)), 'form': None}
+            yield ResultList(None, items_for_result(cl, res, None))
 def result_hidden_fields(cl):
     if cl.formset: