Skip to content

Instantly share code, notes, and snippets.

@IlianIliev
Created September 6, 2013 11:16
Show Gist options
  • Save IlianIliev/6462502 to your computer and use it in GitHub Desktop.
Save IlianIliev/6462502 to your computer and use it in GitHub Desktop.
Mixing that allows you to define short list of fields for the list view when using Django REST Framework
class ShortListSerializerMixin(object):
def get_fields(self):
use_list_fields = self.context['view'].action == u'list' \
and getattr(self.Meta, 'list_fields')
if use_list_fields:
detail_fields = self.opts.fields
self.opts.fields = self.Meta.list_fields
fields = super(ShortListSerializerMixin, self).get_fields()
if use_list_fields:
self.opts.fields = detail_fields
return fields
class ObjectSerializer(ShortListSerializerMixin, serializers.ModelSerializer):
class Meta:
model = Mail
fields = ('field_a', 'field_b', 'field_c', 'field_d', 'field_e')
list_fields = ('field_a', 'field_b', 'field_c',)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment