gpt4 book ai didi

python - 附加其余框架返回的 json 的元数据

转载 作者:行者123 更新时间:2023-11-30 21:51:20 24 4
gpt4 key购买 nike

我有一个名为station的模型,并根据django Rest框架制作了API。

class Station(models.Model):
filter_class = StationFilter
name = models.CharField(unique=True,max_length=255)
def __str__(self):
return self.name

class StationSerializer(serializers.ModelSerializer):
class Meta:
model = Station
fields = ('id','name')

class StationViewSet(viewsets.ModelViewSet):
queryset = Station.objects.all()
serializer_class = StationSerializer

现在,它返回与表的列相对应的 Json。

{
[
{id: 1,name:"station1"},
{id: 2,name:"station2"}
]
}

但是我想像这样附加这个 Json 的元数据。

{
meta : {'time':"2020-02-02 00:00:00:",'apiName:"myapi"},
items :[
{id: 1,name:"station1"},
{id: 2,name:"station2"}
]
}

这可能吗?或者我怎样才能做到?

最佳答案

您需要重写 ViewSetlist 方法:

class StationViewSet(viewsets.ModelViewSet):
...

def list(self, request, *args, **kwargs):
custom_data = {
'list_of_items': StationSerializer(self.get_queryset(), many=true).data # this is the default result
}
custom_data.update({
'meta': #your extra data
})
return Response(custom_data)

更新:

当您将过滤添加到 ModelViewSet 时,您应该执行如下操作:

def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
custom_data = {
'list_of_items': self.get_serializer(queryset, many=True).data
}
custom_data.update({
'meta': #your extra data
})
return Response(custom_data)

关于python - 附加其余框架返回的 json 的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60128299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com