【发布时间】:2021-06-14 15:41:25
【问题描述】:
我不确定dynaimc serializer 是否是我需要的,因为我不完全了解何时使用它。以下问题:
我的序列化程序返回一个工作/有效的 json,但形状不理想:
[
{
"store": {
"last_update": "2021-06-01T12:06:00Z",
"store_id": 238,
}
},
{
"store": {
"last_update": null,
"store_id": 1,
}
}
}
]
我希望它在哪里:
[
{
"store_id": 238,
"data": {
"last_update": "2021-06-01T12:06:00Z",
}
},
{
"store_id": 1,
"data": {
"last_update": null,
}
}
]
简单模型:
class Store(models.Model):
store_id = models.IntegerField("store id", null = True, blank = True)
last_update = models.DateTimeField("last update")
序列化器:
class StoreSerializer(serializers.ModelSerializer):
store = serializers.SerializerMethodField("get_info")
def get_info(self, store):
tmp = {}
tmp["store_id"] = store.store_id
tmp["last_update"] = store.last_update
return tmp
class Meta:
model = Store
fields = ["store"]
观看次数:
class StoreViewSet(viewsets.ViewSet):
serializer_class = StoreSerializer
http_method_names = ['get', 'head']
def list(self, request):
try:
query = Store.objects.all()
results = StoreSerializer(data = query, many = True)
results.is_valid()
return Response(data = results.data, status = status.HTTP_200_OK)
except Exception as E:
return Response(data = str(E), status = status.HTTP_400_BAD_REQUEST)
如何更改序列化程序以实现所需的 JSON 形状?
【问题讨论】:
标签: django django-rest-framework django-serializer