mirror of
https://github.com/django/django.git
synced 2025-08-23 18:29:12 +00:00
magic-removal: Simplified AdminBoundField.existing_display() logic to use a single method instead of three
git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@2045 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
a4e14b451c
commit
c2d468095d
@ -81,7 +81,6 @@ def log_add_message(user, opts, manipulator, new_object):
|
|||||||
pk_value = getattr(new_object, opts.pk.attname)
|
pk_value = getattr(new_object, opts.pk.attname)
|
||||||
LogEntry.objects.log_action(user.id, opts.get_content_type_id(), pk_value, str(new_object), ADDITION)
|
LogEntry.objects.log_action(user.id, opts.get_content_type_id(), pk_value, str(new_object), ADDITION)
|
||||||
|
|
||||||
|
|
||||||
def get_javascript_imports(opts, auto_populated_fields, ordered_objects, field_sets):
|
def get_javascript_imports(opts, auto_populated_fields, ordered_objects, field_sets):
|
||||||
# Put in any necessary JavaScript imports.
|
# Put in any necessary JavaScript imports.
|
||||||
js = ['js/core.js', 'js/admin/RelatedObjectLookups.js']
|
js = ['js/core.js', 'js/admin/RelatedObjectLookups.js']
|
||||||
@ -134,26 +133,15 @@ class AdminBoundField(BoundField):
|
|||||||
if field.rel:
|
if field.rel:
|
||||||
self.related_url = url_for_model(field.rel.to)
|
self.related_url = url_for_model(field.rel.to)
|
||||||
|
|
||||||
def _fetch_existing_display(self, func_name):
|
|
||||||
class_dict = self.original.__class__.__dict__
|
|
||||||
func = class_dict.get(func_name)
|
|
||||||
return func(self.original)
|
|
||||||
|
|
||||||
def _fill_existing_display(self):
|
|
||||||
if getattr(self, '_display_filled', False):
|
|
||||||
return
|
|
||||||
# HACK
|
|
||||||
if isinstance(self.field.rel, models.ManyToOne):
|
|
||||||
func_name = 'get_%s' % self.field.name
|
|
||||||
self._display = self._fetch_existing_display(func_name)
|
|
||||||
elif isinstance(self.field.rel, models.ManyToMany):
|
|
||||||
func_name = 'get_%s_list' % self.field.rel.singular
|
|
||||||
self._display = ", ".join([str(obj) for obj in self._fetch_existing_display(func_name)])
|
|
||||||
self._display_filled = True
|
|
||||||
|
|
||||||
def existing_display(self):
|
def existing_display(self):
|
||||||
self._fill_existing_display()
|
try:
|
||||||
return self._display
|
return self._display
|
||||||
|
except AttributeError:
|
||||||
|
if isinstance(self.field.rel, models.ManyToOne):
|
||||||
|
self._display = getattr(self.original, 'get_%s' % self.field.name)()
|
||||||
|
elif isinstance(self.field.rel, models.ManyToMany):
|
||||||
|
self._display = ", ".join([str(obj) for obj in getattr(self.original, 'get_%s_list' % self.field.rel.singular)()])
|
||||||
|
return self._display
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return repr(self.__dict__)
|
return repr(self.__dict__)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user