2015-02-26 21 views
7

Próbuję zrobić tablicę json w Django, ale ja dostaję błąd -Tworzenie tablicy json w Django

In order to allow non-dict objects to be serialized set the safe parameter to False 

i mój views.py -

def wall_copy(request): 
    if True: 
     posts = user_post.objects.order_by('id')[:20].reverse() 
     return JsonResponse(posts) 

Zasadniczo user_post jest model A posty są przedmiotem 20 najlepszych zapisanych danych. Chcę wysłać tablicę json, ale nie mogę konwertować postów na tablicę json. Próbowałem także serializerów, ale to nie pomogło.

Utknąłem, pomóż mi proszę.

Z góry dziękuję.

Odpowiedz

20

Czy to rozwiąże Twój problem?

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) 
+0

Dzięki temu zadziałało, ale teraz nie mogę uzyskać danych. Czy możesz mi powiedzieć, jak mogę odzyskać dane JSON ...? – aquaman

+0

Przykro nam, że w linii postów = ... wystąpił błąd. Brakowało wywołania funkcji all(). Czy to działa teraz dla ciebie? –

1

myślę, że można to rozwiązać za pomocą bezpiecznego = false

powrotne JsonResponse (posty, bezpieczne = false)

def wall_copy(request): 
     posts = user_post.objects.all().order_by('id')[:20].reverse() 

     return JsonResponse(posts, safe=False)