[PATCH 2/7] REST: Simplify ModelMultiChoiceField
Daniel Axtens
dja at axtens.net
Wed May 9 01:23:34 AEST 2018
Stephen Finucane <stephen at that.guru> writes:
> We're actually going to remove this shortly but the new technique works
> for both.
For both what?
Apart from that, this patch leaves ModelMultiChoiceField._get_filters()
as dead code, but it seems you do something with it later, so that's
fine.
Regards,
Daniel
>
> Signed-off-by: Stephen Finucane <stephen at 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 at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/patchwork
More information about the Patchwork
mailing list