Skip to content

Instantly share code, notes, and snippets.

@curiousest
Created November 28, 2016 13:54
Show Gist options
  • Select an option

  • Save curiousest/503d43e52152d4a083e3547258a61ed9 to your computer and use it in GitHub Desktop.

Select an option

Save curiousest/503d43e52152d4a083e3547258a61ed9 to your computer and use it in GitHub Desktop.
class PerRequestFieldsSerializerMixin():
def get_field_names(self, *args, **kwargs):
field_names = super().get_field_names(*args, **kwargs)
request_field_names = getattr(
getattr(kwargs.get('context', {}).get('view', None), 'request', None),
'query_params', {}
).get('fields', None)
if request_field_names is not None:
request_field_names = request_field_names.split(',')
return list(set(field_names) ^ set(request_field_names))
else:
return field_names
class PerRequestFieldsMixin():
def get_serializer_class(self, *args, **kwargs):
original_class = super().get_serializer_class(*args, **kwargs)
class PerRequestSerializer(PerRequestFieldsSerializerMixin, original_class):
pass
return PerRequestSerializer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment