mirror of
https://github.com/django/django.git
synced 2025-03-12 02:12:38 +00:00
Fixed #33805 -- Made admin's many-to-many widgets do not display help text for selecting values when allow_multiple_selected is False.
This commit is contained in:
parent
90d2f9f416
commit
eb7b8f3699
@ -314,8 +314,12 @@ class BaseModelAdmin(metaclass=forms.MediaDefiningClass):
|
|||||||
kwargs["queryset"] = queryset
|
kwargs["queryset"] = queryset
|
||||||
|
|
||||||
form_field = db_field.formfield(**kwargs)
|
form_field = db_field.formfield(**kwargs)
|
||||||
if isinstance(form_field.widget, SelectMultiple) and not isinstance(
|
if (
|
||||||
form_field.widget, (CheckboxSelectMultiple, AutocompleteSelectMultiple)
|
isinstance(form_field.widget, SelectMultiple)
|
||||||
|
and form_field.widget.allow_multiple_selected
|
||||||
|
and not isinstance(
|
||||||
|
form_field.widget, (CheckboxSelectMultiple, AutocompleteSelectMultiple)
|
||||||
|
)
|
||||||
):
|
):
|
||||||
msg = _(
|
msg = _(
|
||||||
"Hold down “Control”, or “Command” on a Mac, to select more than one."
|
"Hold down “Control”, or “Command” on a Mac, to select more than one."
|
||||||
|
@ -273,6 +273,26 @@ class AdminFormfieldForDBFieldTests(SimpleTestCase):
|
|||||||
"Hold down “Control”, or “Command” on a Mac, to select more than one.",
|
"Hold down “Control”, or “Command” on a Mac, to select more than one.",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_m2m_widgets_no_allow_multiple_selected(self):
|
||||||
|
class NoAllowMultipleSelectedWidget(forms.SelectMultiple):
|
||||||
|
allow_multiple_selected = False
|
||||||
|
|
||||||
|
class AdvisorAdmin(admin.ModelAdmin):
|
||||||
|
filter_vertical = ["companies"]
|
||||||
|
formfield_overrides = {
|
||||||
|
ManyToManyField: {"widget": NoAllowMultipleSelectedWidget},
|
||||||
|
}
|
||||||
|
|
||||||
|
self.assertFormfield(
|
||||||
|
Advisor,
|
||||||
|
"companies",
|
||||||
|
widgets.FilteredSelectMultiple,
|
||||||
|
filter_vertical=["companies"],
|
||||||
|
)
|
||||||
|
ma = AdvisorAdmin(Advisor, admin.site)
|
||||||
|
f = ma.formfield_for_dbfield(Advisor._meta.get_field("companies"), request=None)
|
||||||
|
self.assertEqual(f.help_text, "")
|
||||||
|
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF="admin_widgets.urls")
|
@override_settings(ROOT_URLCONF="admin_widgets.urls")
|
||||||
class AdminFormfieldForDBFieldWithRequestTests(TestDataMixin, TestCase):
|
class AdminFormfieldForDBFieldWithRequestTests(TestDataMixin, TestCase):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user