Add ChoiceField support to FilterModifierMixin
Some checks failed
CI / build (20.x, 3.12) (push) Has been cancelled
CI / build (20.x, 3.13) (push) Has been cancelled

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 cc1aad0221
commit 77196ea80e

View File

@@ -151,6 +151,12 @@ class FilterModifierMixin:
(MODIFIER_EMPTY_TRUE, _('Is Empty')), (MODIFIER_EMPTY_TRUE, _('Is Empty')),
(MODIFIER_EMPTY_FALSE, _('Is Not 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: [ forms.MultipleChoiceField: [
('exact', _('Is')), ('exact', _('Is')),
('n', _('Is Not')), ('n', _('Is Not')),