Ich versuche in Django ein Json-Array zu erstellen, aber ich bekomme Fehler -
In order to allow non-dict objects to be serialized set the safe parameter to False
und meine Ansichten.py -
def wall_copy(request):
if True:
posts = user_post.objects.order_by('id')[:20].reverse()
return JsonResponse(posts)
Im Grunde ist user_post ein Modell, das ein Beitrag enthält und das Objekt der Top 20 der gespeicherten Daten ist. Ich möchte ein Json-Array senden, aber ich kann Beiträge nicht in ein Json-Array konvertieren. Ich habe auch Serializer ausprobiert, aber es hat nicht geholfen.
Ich stehe fest, bitte hilf mir.
Danke im Voraus.
Würde das dein Problem lösen?
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)
Sie können dieses Problem lösen, indem Sie safe=False
verwenden:
def wall_copy(request):
posts = user_post.objects.all().order_by('id')[:20].reverse()
return JsonResponse(posts, safe=False)
Beachten Sie, dass es nicht wirklich unsicher ist - Sie müssen nur selbst sicherstellen, dass das, was Sie zurückgeben möchten, in JSON konvertiert werden kann.
Siehe JsonResponse docs als Referenz.
Verwenden Sie die Methode values : http://Django.readthedocs.org/de/1.7.x/ref/models/querysets.html#Django.db.models.query.QuerySet.values . Es erzeugt eine dikteartige Darstellung für die von Ihnen benötigten Objektfelder.