Skip to content

Instantly share code, notes, and snippets.

@a4amaan
Created April 20, 2020 09:21
Show Gist options
  • Save a4amaan/e1967ae04c4ca46d02c67a9fc75bba77 to your computer and use it in GitHub Desktop.
Save a4amaan/e1967ae04c4ca46d02c67a9fc75bba77 to your computer and use it in GitHub Desktop.
Exclude Fields from Django Rest Serializer
class DynamicFieldsModelSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
request = kwargs.get('context', {}).get('request', None)
exclude = kwargs.pop('exclude', [])
exclude_str = request.GET.get('exclude', None) if request else None
exclude_str_list = exclude_str.split(',') if exclude_str else []
exclude = list(set(exclude + exclude_str_list))
super(DynamicFieldsModelSerializer, self).__init__(*args, **kwargs)
for exclude_name in exclude:
self.fields.pop(exclude_name, None)
# exclude=field,field2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment