Skip to content

Commit 2af63d3

Browse files
Fixed #954 -- Many-to-many raw_id_admin change page now displays original object(s) correctly. Thanks for reporting, mordaha
git-svn-id: http://code.djangoproject.com/svn/django/trunk@1489 bcc190cf-cafb-0310-a4f2-bffc1f526a37
1 parent 29d1598 commit 2af63d3

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

django/contrib/admin/views/main.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -276,10 +276,9 @@ def get_javascript_imports(opts,auto_populated_fields, ordered_objects, field_se
276276
break
277277
return js
278278

279-
280279
class AdminBoundField(BoundField):
281280
def __init__(self, field, field_mapping, original):
282-
super(AdminBoundField, self).__init__(field,field_mapping,original)
281+
super(AdminBoundField, self).__init__(field, field_mapping, original)
283282

284283
self.element_id = self.form_fields[0].get_id()
285284
self.has_label_first = not isinstance(self.field, meta.BooleanField)
@@ -291,7 +290,7 @@ def __init__(self, field, field_mapping, original):
291290
self.first = False
292291

293292
classes = []
294-
if(self.raw_id_admin):
293+
if self.raw_id_admin:
295294
classes.append('nowrap')
296295
if max([bool(f.errors()) for f in self.form_fields]):
297296
classes.append('error')
@@ -305,15 +304,15 @@ def _fetch_existing_display(self, func_name):
305304
return func(self.original)
306305

307306
def _fill_existing_display(self):
308-
if self._display_filled:
307+
if getattr(self, '_display_filled', False):
309308
return
310-
#HACK
309+
# HACK
311310
if isinstance(self.field.rel, meta.ManyToOne):
312311
func_name = 'get_%s' % self.field.name
313312
self._display = self._fetch_existing_display(func_name)
314313
elif isinstance(self.field.rel, meta.ManyToMany):
315-
func_name = 'get_%s_list' % self.field.name
316-
self._display = ",".join(self._fetch_existing_display(func_name))
314+
func_name = 'get_%s_list' % self.field.rel.singular
315+
self._display = ", ".join([str(obj) for obj in self._fetch_existing_display(func_name)])
317316
self._display_filled = True
318317

319318
def existing_display(self):

0 commit comments

Comments
 (0)