diff options
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/utils.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/django/contrib/admin/utils.py b/django/contrib/admin/utils.py index e604a27750..3d5b023dea 100644 --- a/django/contrib/admin/utils.py +++ b/django/contrib/admin/utils.py @@ -294,6 +294,7 @@ def lookup_field(name, obj, model_admin=None): except (FieldDoesNotExist, FieldIsAForeignKeyColumnName): # For non-regular field values, the value is either a method, # property, related field, or returned via a callable. + f = None if callable(name): attr = name value = attr(obj) @@ -312,10 +313,12 @@ def lookup_field(name, obj, model_admin=None): attr = getattr(attr, part, sentinel) if attr is sentinel: return None, None, None + # The final field is needed for displaying boolean icons. + if LOOKUP_SEP in name: + f = get_fields_from_path(opts.model, name)[-1] value = attr if hasattr(model_admin, "model") and hasattr(model_admin.model, name): attr = getattr(model_admin.model, name) - f = None else: attr = None value = getattr(obj, name) |
