summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Lazarević <laza@e11bits.com>2024-01-11 11:44:01 +0700
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2024-01-11 12:47:06 +0100
commit4787972c941b0d090cf083e84a98c1791bb2ae4b (patch)
treec5a4a3526d50d70ec8e4f36a4cbc064e150421e7
parent40b5b1596f7505416bd30d5d7582b5a9004ea7d5 (diff)
Refs #28404 -- Made displaying property values in admin respect non-None empty values.
-rw-r--r--django/contrib/admin/utils.py3
-rw-r--r--tests/admin_utils/tests.py7
2 files changed, 9 insertions, 1 deletions
diff --git a/django/contrib/admin/utils.py b/django/contrib/admin/utils.py
index 97a09143ad..0bcf99ae85 100644
--- a/django/contrib/admin/utils.py
+++ b/django/contrib/admin/utils.py
@@ -6,6 +6,7 @@ from functools import reduce
from operator import or_
from django.core.exceptions import FieldDoesNotExist
+from django.core.validators import EMPTY_VALUES
from django.db import models, router
from django.db.models.constants import LOOKUP_SEP
from django.db.models.deletion import Collector
@@ -459,7 +460,7 @@ def display_for_value(value, empty_value_display, boolean=False):
if boolean:
return _boolean_icon(value)
- elif value is None:
+ elif value in EMPTY_VALUES:
return empty_value_display
elif isinstance(value, bool):
return str(value)
diff --git a/tests/admin_utils/tests.py b/tests/admin_utils/tests.py
index 393770bd2d..067b47198d 100644
--- a/tests/admin_utils/tests.py
+++ b/tests/admin_utils/tests.py
@@ -17,6 +17,7 @@ from django.contrib.admin.utils import (
lookup_field,
quote,
)
+from django.core.validators import EMPTY_VALUES
from django.db import DEFAULT_DB_ALIAS, models
from django.test import SimpleTestCase, TestCase, override_settings
from django.utils.formats import localize
@@ -249,6 +250,12 @@ class UtilsTests(SimpleTestCase):
self.assertEqual(display_for_value(True, ""), "True")
self.assertEqual(display_for_value(False, ""), "False")
+ def test_list_display_for_value_empty(self):
+ for value in EMPTY_VALUES:
+ with self.subTest(empty_value=value):
+ display_value = display_for_value(value, self.empty_value)
+ self.assertEqual(display_value, self.empty_value)
+
def test_label_for_field(self):
"""
Tests for label_for_field