J'essaie de faire un tableau JSON dans Django mais je reçois une erreur -
In order to allow non-dict objects to be serialized set the safe parameter to False
et mes views.py -
def wall_copy(request):
if True:
posts = user_post.objects.order_by('id')[:20].reverse()
return JsonResponse(posts)
Fondamentalement, user_post est un modèle et les publications sont l’objet des 20 meilleures données enregistrées. Je souhaite envoyer un tableau JSON, mais je ne parviens pas à convertir les messages en tableau JSON. J'ai aussi essayé les sérialiseurs mais cela n'a pas aidé.
Je suis coincé, aidez-moi s'il vous plaît.
Merci d'avance.
Cela résoudrait-il votre problème?
from Django.core import serializers
def wall_copy(request):
posts = user_post.objects.all().order_by('id')[:20].reverse()
posts_serialized = serializers.serialize('json', posts)
return JsonResponse(posts_serialized, safe=False)
Vous pouvez résoudre ce problème en utilisant safe=False
:
def wall_copy(request):
posts = user_post.objects.all().order_by('id')[:20].reverse()
return JsonResponse(posts, safe=False)
Notez que ce n'est pas vraiment unsafe - vous devez simplement vous assurer que ce que vous essayez de retourner peut être converti en JSON.
Voir JsonResponse docs pour référence.
Essayez d'utiliser la méthode values : http://Django.readthedocs.org/en/1.7.x/ref/models/querysets.html#Django.db.models.query.QuerySet.values . Il produira une représentation semblable à celle d'un dicton pour les champs d'objets dont vous avez besoin.