在序列化时,想想修改嵌套里的数据,比如过滤和排序,在模型类里可以添加ordering来进行排序,但是过滤没找方法实现,使用ListSerializer才能实现
class FilterdListSerializer(serializers.ListSerializer):
def to_representation(self, data):
data = data.filter(is_show=1,).order_by('-num')
return super().to_representation(data)
class Type_Gtx(serializers.ModelSerializer):
class Meta:
model = models.GoodsCategory
fields = ['id', 'name', 'num']
list_serializer_class = FilterdListSerializer
class GoodsCategorySerializer(serializers.ModelSerializer):
type_cat = Type_Gtx(read_only=True, many=True)
class Meta:
model = models.GoodsType
fields = ['id', 'name', 'image', 'type_cat']