[英]How to restructuring the data by the data's property in Django-Rest-Framework?
我有一個磁盤序列化程序,下面是我的磁盤序列化程序:
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
)進行重組的,是否有內置方法來實現它?
我該如何重建它們?
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.