下面給出了我的序列化程序類。我有一個模型中的所有字段。我想改變自定義格式的序列化器數據的表示。嘗試使用串行器的呈現方法但無法成功。在django rest框架中自定義Json響應
class MyListSerilizer(ModelSerializer):
class Meta:
model=MyModel
fields=['Name','Address_ID','Portal','Address','City','DisplayOrderDateTime','Email','Order_ID','Order_Code','Item_Code','DispatchedOn','Payment_Mode','Shipping_Charge','ShippingMethodCode','ShippingMethodCharges','CashOnDeliveryCharges','CurrencyCode','BillingAddress','GiftWrapCharges','SaleOrderItemCode','Shipping_ref','Cancellable','OnHold','Quantity','Invoice_No''Portal',........]
所以在我看來,類定義和輸出對應於他們在這裏也提到了。
class MyListAPIView(ListAPIView):
def list(self,request):
queryset=MyModel.objects.all()
serializer=MyListSerilizer(queryset,many=True)
return Response({'Records':serializer.data})
輸出:---------->對應於視圖是
"Records": [
{
"Name": "abc",
"Address_ID": "6819319",
"Portal": "amksl",
"Address": "",
"City": "absjsls",
"DisplayOrderDateTime": null,
"Email": "[email protected]",
"Order_ID": "",
"Order_Code": "",
"Item_Code": "",
"DispatchedOn": "",
"Payment_Mode": ""
},
{
"Name": "abc",
"Address_ID": "6819319",
"Portal": "amksl",
"Address": "",
"City": "absjsls",
"DisplayOrderDateTime": null,
"Email": "[email protected]",
"Order_ID": "",
"Order_Code": "",
"Item_Code": "",
"DispatchedOn": "",
"Payment_Mode": ""
},
so on....
所以我的問題是如何將我實現這個JSON格式。總之我如何定製我的視圖類
{
"identifiers":{
"email":"[email protected]",
"phone":"123664"
},
"activity_type": "purchase",
"timestamp": "UNIX TIMESTAMP",
"products": [{
"brandName": "abc",
"id": "1",
"sku": "abcd",
"name": "mnis",
"price": 12.9,
"discount": "",
"quantity": "",
"currency": ""
}]
"cart_info":{
"total":"",
"revenue":"",
"currency":""
},
"Order_info":{
"total":"2121",
.
.
.
}
},
{
"identifiers":{
"email":"[email protected]",
"phone":"123664"
},
"activity_type": "purchase",
"timestamp": "UNIX TIMESTAMP",
"products": [{
"brandName": "abc",
"id": "1",
"sku": "abcd",
"name": "mnis",
"price": 12.9,
"discount": "",
"quantity": "",
"currency": ""
}]
"cart_info":{
"total":"",
"revenue":"",...so on
你更願意來定製你的'MyListSerilizer'類。閱讀有關序列化器的文檔 - > http://www.django-rest-framework.org/api-guide/serializers/,應該有幫助 – pkisztelinski
我將如何自定義MyListSerializer單個模型,我試圖將字段分成不同的序列化器類,但是不可行,如果你給我提供一個小例子,那對我來說最好 – user6847618
你可以使用'SerializerMethodField' - > http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield添加一些自定義字段 – pkisztelinski