I have a ModelSerializer
, but by default it serializes all the objects in my model. I would like to limit this queryset to only the most recent 500 (as opposed to all 50 million). How do I do this?
What I have currently is the following:
class MyModelSerializer(serializers.ModelSerializer): class Meta: model = MyModel
The reason I don't think I can just specify the queryset in my viewset is that this is in fact the nested portion of another serializer.
models.py
class Container(models.Model): size = models.CharField(max_length=20) shape = models.CharField(max_length=20)class Item(models.Model): container = models.ForeignKey(Container, related_name='items') name = models.CharField(max_length=20) color = models.CharField(max_length=20)
views.py
class ContainerViewSet(viewsets.ModelViewSet): queryset = Container.objects.all() # only a handful of containers serializer_class = ContainerSerializer
serializers.py
class ItemSerializer(serializers.ModelSerializer): class Meta: model = Item fields = ('name', 'color')class ContainerSerializer(serializers.ModelSerializer): items = ItemSerializer(many=True) # millions of items per container class Meta: model = Container fields = ('size', 'shape', 'items')