J'utilise le piston et j'aimerais cracher un format personnalisé pour ma réponse.
Mon modèle est quelque chose comme ceci: P>
class CarHandler(AnonymousBaseHandler): allowed_methods = ('GET',) model = Car fields = ('name', 'color',) def read(self, request, car_id): return Car.get(pk=car_id)
3 Réponses :
Django est livré avec une bibliothèque de sérialisation. Vous aurez également besoin d'une bibliothèque JSON pour l'obtenir dans le format que vous souhaitez
http://docs.djangoproject.com/fr/dev/topics/serialization/ p>
La question est de savoir comment ajouter des champs à la représentation de l'objet JSON, et non de la manière de produire JSON.
Vous pouvez revenir au format personnalisé en renvoyant un dictionnaire Python. Voici un exemple sur l'une de mes applications. J'espère que cela aide.
from models import * from piston.handler import BaseHandler from django.http import Http404 class ZipCodeHandler(BaseHandler): methods_allowed = ('GET',) def read(self, request, zip_code): try: points = DeliveryPoint.objects.filter(zip_code=zip_code).order_by("name") dps = [] for p in points: name = p.name if (len(p.name)<=16) else p.name[:16]+"..." dps.append({'name': name, 'zone': p.zone, 'price': p.price}) return {'length':len(dps), 'dps':dps} except Exception, e: return {'length':0, "error":e}
Donc, vous pouvez retourner un dictionnaire! Grands trucs, ne savaient pas ça. Merci!
Wow, c'est une agréable surprise!
Cela fait deux ans que cette question a été posée, donc c'est évidemment tardive pour OP. Mais pour d'autres personnes qui, comme moi, avaient un dilemme similaire, il existe un fort> pistonique pistonique fort> pour que cela soit fait.
Utilisation de l'exemple Django de sondages et de choix - P>
Vous allez Remarquez que pour le ChoiceHandler, la réponse JSON est la suivante: p> ceci inclut l'ensemble du JSON pour le sondage associé, tandis que juste le Disons que la réponse Voici comment vous allez éditer le gestionnaire pour atteindre cet objectif: p> ID code> car il aurait pu être tout aussi bien sinon mieux. p>
Y a-t-il un équivalent pour un champ imbriqué? Semble que le piston ne supporte que non pas inutile, sur la base de ses émetteurs.py