Index: contrib/admin/media/js/admin/RelatedObjectLookups.js =================================================================== --- contrib/admin/media/js/admin/RelatedObjectLookups.js (revision 7425) +++ contrib/admin/media/js/admin/RelatedObjectLookups.js (working copy) @@ -26,14 +26,18 @@ return false; } -function dismissRelatedLookupPopup(win, chosenId) { +function dismissRelatedLookupPopup(win, chosenId, chosenName) { var name = win.name.replace(/___/g, '.'); var elem = document.getElementById(name); + var nameElem = document.getElementById("view_lookup_" + name); if (elem.className.indexOf('vManyToManyRawIdAdminField') != -1 && elem.value) { elem.value += ',' + chosenId; } else { document.getElementById(name).value = chosenId; } + if(nameElem) { + nameElem.innerHTML = chosenName; + } win.close(); } Index: contrib/admin/templatetags/admin_list.py =================================================================== --- contrib/admin/templatetags/admin_list.py (revision 7425) +++ contrib/admin/templatetags/admin_list.py (working copy) @@ -196,8 +196,9 @@ # Convert the pk to something that can be used in Javascript. # Problem cases are long ints (23L) and non-ASCII strings. result_id = repr(force_unicode(getattr(result, pk)))[1:] + result_name = str(result) yield mark_safe(u'<%s%s>%s%s>' % \ - (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s); return false;"' % result_id or ''), conditional_escape(result_repr), table_tag)) + (table_tag, row_class, url, (cl.is_popup and ' onclick="opener.dismissRelatedLookupPopup(window, %s, %r); return false;"' % (result_id or '', result_name)), conditional_escape(result_repr), table_tag)) else: yield mark_safe(u'