We're actually going to remove this shortly but the new technique works for both.
Signed-off-by: Stephen Finucane <step...@that.guru> --- patchwork/api/filters.py | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/patchwork/api/filters.py b/patchwork/api/filters.py index 25956e98..030f9af3 100644 --- a/patchwork/api/filters.py +++ b/patchwork/api/filters.py @@ -46,7 +46,10 @@ class ModelMultiChoiceField(ModelChoiceField): if value in self.empty_values: return None - filters = self._get_filters(value) + try: + filters = {'pk': int(value)} + except ValueError: + filters = {self.alternate_lookup: value} try: value = self.queryset.get(**filters) @@ -58,11 +61,7 @@ class ModelMultiChoiceField(ModelChoiceField): class ProjectChoiceField(ModelMultiChoiceField): - def _get_filters(self, value): - try: - return {'pk': int(value)} - except ValueError: - return {'linkname__iexact': value} + alternate_lookup = 'linkname__iexact' class ProjectFilter(ModelChoiceFilter): @@ -72,11 +71,7 @@ class ProjectFilter(ModelChoiceFilter): class PersonChoiceField(ModelMultiChoiceField): - def _get_filters(self, value): - try: - return {'pk': int(value)} - except ValueError: - return {'email__iexact': value} + alternate_lookup = 'email__iexact' class PersonFilter(ModelChoiceFilter): @@ -111,11 +106,7 @@ class StateFilter(ModelChoiceFilter): class UserChoiceField(ModelMultiChoiceField): - def _get_filters(self, value): - try: - return {'pk': int(value)} - except ValueError: - return {'username__iexact': value} + alternate_lookup = 'username__iexact' class UserFilter(ModelChoiceFilter): -- 2.14.3 _______________________________________________ Patchwork mailing list Patchwork@lists.ozlabs.org https://lists.ozlabs.org/listinfo/patchwork