summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/utils.py5
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)