【发布时间】:2014-10-08 09:30:42
【问题描述】:
我有一个ModelSerializer,但默认情况下它会序列化我模型中的所有对象。我想将此查询集限制为仅最近的 500 个(而不是全部 5000 万个)。我该怎么做?
我目前拥有的如下:
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
我认为我不能只在我的视图集中指定查询集的原因是这实际上是另一个序列化程序的嵌套部分。
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')
【问题讨论】:
标签: django serialization django-rest-framework