Étant donné ci-dessous est ma classe sérialiseur. J'ai tous les champs dans un modèle. Je voudrais changer la représentation des données de sérialiseur dans le format fait sur commande. Essayé to_representation méthode de sérialiseur, mais n'a pas réussi. Donc, à mon avis, la classe définie et la sortie correspondant à eux sont également mentionnées ici.Personnaliser la réponse JSON dans le cadre de repos django
class MyListAPIView(ListAPIView):
def list(self,request):
queryset=MyModel.objects.all()
serializer=MyListSerilizer(queryset,many=True)
return Response({'Records':serializer.data})
sortie: ----------> Correspondant à voir est
"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....
donc ma question est de savoir comment pourrais-je obtenir ce format JSON. Bref, comment puis-je personnaliser mon avis classe
{
"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
vous plutôt de personnaliser votre classe 'MyListSerilizer' . lire docs sur sérialiseurs -> http://www.django-rest-framework.org/api-guide/serializers/, devrait aider – pkisztelinski
comment pourrais-je personnaliser MyListSerializer pour un seul modèle, j'ai essayé de diviser les champs en différentes classes de sérialiseurs, mais pas réalisable, si vous me fournissez un petit exemple, il serait préférable pour moi – user6847618
vous pouvez ajouter des champs personnalisés en utilisant 'SerializerMethodField' -> http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield – pkisztelinski