Refs #28404 -- Made displaying property values in admin respect non-None empty values.

This commit is contained in:
Alexander Lazarević 2024-01-11 11:44:01 +07:00 committed by Mariusz Felisiak
parent 40b5b1596f
commit 4787972c94
2 changed files with 9 additions and 1 deletions

View File

@ -6,6 +6,7 @@ from functools import reduce
from operator import or_ from operator import or_
from django.core.exceptions import FieldDoesNotExist from django.core.exceptions import FieldDoesNotExist
from django.core.validators import EMPTY_VALUES
from django.db import models, router from django.db import models, router
from django.db.models.constants import LOOKUP_SEP from django.db.models.constants import LOOKUP_SEP
from django.db.models.deletion import Collector from django.db.models.deletion import Collector
@ -459,7 +460,7 @@ def display_for_value(value, empty_value_display, boolean=False):
if boolean: if boolean:
return _boolean_icon(value) return _boolean_icon(value)
elif value is None: elif value in EMPTY_VALUES:
return empty_value_display return empty_value_display
elif isinstance(value, bool): elif isinstance(value, bool):
return str(value) return str(value)

View File

@ -17,6 +17,7 @@ from django.contrib.admin.utils import (
lookup_field, lookup_field,
quote, quote,
) )
from django.core.validators import EMPTY_VALUES
from django.db import DEFAULT_DB_ALIAS, models from django.db import DEFAULT_DB_ALIAS, models
from django.test import SimpleTestCase, TestCase, override_settings from django.test import SimpleTestCase, TestCase, override_settings
from django.utils.formats import localize 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(True, ""), "True")
self.assertEqual(display_for_value(False, ""), "False") 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): def test_label_for_field(self):
""" """
Tests for label_for_field Tests for label_for_field