Add ChoiceField support to FilterModifierMixin

Enable filter modifiers for single-choice ChoiceFields in addition to the
existing MultipleChoiceField support. ChoiceFields can now display modifier
dropdowns with "Is", "Is Not", "Is Empty", and "Is Not Empty" options when
the corresponding FilterSet defines those lookups.

The mixin correctly verifies lookup availability against the FilterSet, so
modifiers only appear when multiple lookup options are actually supported.
Currently most FilterSets only define 'exact' for single-choice fields, but
this change enables future FilterSet enhancements to expose additional
lookups for ChoiceFields.
This commit is contained in:
Jason Novinger
2025-11-07 16:55:43 -06:00
parent fb768d731f
commit 7c66636f30

View File

@@ -151,6 +151,12 @@ class FilterModifierMixin:
(MODIFIER_EMPTY_TRUE, _('Is Empty')),
(MODIFIER_EMPTY_FALSE, _('Is Not Empty')),
],
forms.ChoiceField: [
('exact', _('Is')),
('n', _('Is Not')),
(MODIFIER_EMPTY_TRUE, _('Is Empty')),
(MODIFIER_EMPTY_FALSE, _('Is Not Empty')),
],
forms.MultipleChoiceField: [
('exact', _('Is')),
('n', _('Is Not')),