summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHrushikesh Vaidya <hrushikeshrv@gmail.com>2022-02-27 08:26:16 +0530
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-02-28 13:28:21 +0100
commit119f227aa62885f12cd7dd2558a62148d02adbb4 (patch)
tree5bc2a9b5806481ffe2a2751c824bbb0f9143b84e
parente0442a628eb480eac6a7888aed5a86f83499e299 (diff)
Fixed #33524 -- Allowed overriding empty_label for ForeignKey in ModelAdmin.radio_fields.
-rw-r--r--django/contrib/admin/options.py4
-rw-r--r--tests/admin_widgets/tests.py12
2 files changed, 15 insertions, 1 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index 64be087bf1..63f5cb2b27 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -269,7 +269,9 @@ class BaseModelAdmin(metaclass=forms.MediaDefiningClass):
"class": get_ul_class(self.radio_fields[db_field.name]),
}
)
- kwargs["empty_label"] = _("None") if db_field.blank else None
+ kwargs["empty_label"] = (
+ kwargs.get("empty_label", _("None")) if db_field.blank else None
+ )
if "queryset" not in kwargs:
queryset = self.get_field_queryset(db, db_field, request)
diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py
index db724b4196..cce759a9c8 100644
--- a/tests/admin_widgets/tests.py
+++ b/tests/admin_widgets/tests.py
@@ -21,6 +21,7 @@ from django.db.models import (
CharField,
DateField,
DateTimeField,
+ ForeignKey,
ManyToManyField,
UUIDField,
)
@@ -141,6 +142,17 @@ class AdminFormfieldForDBFieldTests(SimpleTestCase):
)
self.assertIsNone(ff.empty_label)
+ def test_radio_fields_foreignkey_formfield_overrides_empty_label(self):
+ class MyModelAdmin(admin.ModelAdmin):
+ radio_fields = {"parent": admin.VERTICAL}
+ formfield_overrides = {
+ ForeignKey: {"empty_label": "Custom empty label"},
+ }
+
+ ma = MyModelAdmin(Inventory, admin.site)
+ ff = ma.formfield_for_dbfield(Inventory._meta.get_field("parent"), request=None)
+ self.assertEqual(ff.empty_label, "Custom empty label")
+
def test_many_to_many(self):
self.assertFormfield(Band, "members", forms.SelectMultiple)