我有一个磁盘序列化程序,我的磁盘序列化程序如下:
class DiskSerializer(ModelSerializer):
diskessencetype_name = serializers.ReadOnlyField(source='diskEssenceType.name')
diskostype_name = serializers.ReadOnlyField(source='diskOsType.name')
class Meta:
model = Disk
fields = [
"id",
"price",
"diskessencetype_name",
"diskostype_name",
]views.py是这样的:
class DiskListAPIView(ListAPIView):
serializer_class = DiskSerializer
permission_classes = []
queryset = Disk.objects.all()产生的数据如下:
[
{
"id": 4,
"price": "5.00",
"diskessencetype_name": "ssd",
"diskostype_name": "系统盘"
},
{
"id": 5,
"price": "6.00",
"diskessencetype_name": "sas",
"diskostype_name": "系统盘"
},
{
"id": 6,
"price": "5.00",
"diskessencetype_name": "sas",
"diskostype_name": "数据盘"
},
{
"id": 7,
"price": "6.00",
"diskessencetype_name": "sas",
"diskostype_name": "系统盘"
},
{
"id": 8,
"price": "6.00",
"diskessencetype_name": "sas",
"diskostype_name": "系统盘"
},
.....
]但我想找出以下数据的限制和限制:
{
"系统盘":[{"id":5, "diskessencetype_name":"sas", "price":5.00},.....]
"数据盘":[{"id":7, "diskessencetype_name":"ssd", "price":7.00},.....]
}您知道,它们是通过实例的属性(diskostype_name)进行重构的,是否有一个内建方法来实现它呢?
我怎样才能重建它们?
发布于 2017-11-17 11:05:06
views.py
class Postlar(ListAPIView):
permission_classes = []
queryset = Disk.objects.all()
serializer_class = DiskSerializer
def list(self, request, *args, **kwargs):
result = {}
SerializerClass = self.get_serializer_class()
for u in ["系统盘", "数据盘"]:
serializer = SerializerClass(Disk.objects.filter(diskOsType__name=u), many=True)
result[u] = serializer.data
return Response(result)https://stackoverflow.com/questions/47348091
复制相似问题