2010-02-13 18 views
2

J'ai créé un formulaire pour ajouter des notes sur un client dans notre administrateur web. J'utilise jQuery et Ajax pour soumettre le pour. Je souhaite que la vue Django renvoie la note/l'enregistrement nouvellement ajouté afin que je puisse l'ajouter à la table des notes client. Mon envoi Ajax fonctionne, et la note est enregistrée, je ne peux pas afficher le résultat.Django retourne un seul enregistrement en tant que JSON

J'ai essayé les suivantes 3 lignes (séparément):

serializers.serialize("json", Note.objects.get(id=new_note.id)) 
serializers.serialize("json", new_note) 
return HttpResponse(simplejson.dumps(new_note), mimetype='application/javascript') 

Les 2 premiers de chaque produit:

'Note' object is not iterable 

Et le 3e m'a donné:

<Note: Note object> is not JSON serializable 

I ne me soucie pas du format dans lequel je retourne l'objet, tant que je peux recevoir et afficher chaque champ de l'enregistrement en utilisant jQuery.

Merci.

Répondre

9

De the docs:

Les arguments à la fonction serialize sont le format de sérialisation des données à (voir les formats de sérialisation) et un QuerySet sérialiser.

Utilisez filter() au lieu de get().

+0

Merci. J'ai lu les docs et j'ai vu qu'il devait s'agir d'un ensemble de requêtes, je ne me suis pas rendu compte que cela fonctionnerait avec .filter(). – mhost

+1

Je pense vraiment que la réponse de neoprolog est exactement ce que vous cherchez dans ce cas. Tout le monde n'a pas l'ensemble de requêtes qu'il veut utiliser au moment où il veut sérialiser. – JamesD

9

Utilisation:

serializers.serialize("json", [new_note]) 

(attention sur CROCHETS autour de l'objet de la requête)

Questions connexes