Django REST Framework-嵌套序列化程序的查询限制? [英] Django REST Framework - query limit on nested serializer?
本文介绍了Django REST Framework-嵌套序列化程序的查询限制?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我遇到一种情况,其中一个表通过外键与另一个表相关,如下所示:
I have a situation in which one table is related to another via a foreign key as follows:
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)
serializers.py
serializers.py
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
class ContainerSerializer(serializers.ModelSerializer):
items = ItemSerializer(many=True)
class Meta:
model = Container
fields = ('size', 'shape', 'items')
这很好,但我的问题是所有项目在容器中获取序列号化。我只希望将color ='green'的项目序列化。
This works fine, but my problem is that all the items in the container get serialized. I only want items with color='green' to be serialized.
推荐答案
class ContainerSerializer(serializers.ModelSerializer):
items = serializers.SerializerMethodField()
def get_items(self, obj):
query = Item.objects.filter(item_set__color='green')
serializer = ItemSerializer(query, many=True)
return serializer.data
class Meta:
model = Container
fields = ('size', 'shape', 'items')
这篇关于Django REST Framework-嵌套序列化程序的查询限制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文