2015-02-26 13 views
7

tôi đang cố gắng để tạo ra một mảng json trong django nhưng tôi nhận được lỗi -Tạo mảng json trong django

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

và views.py tôi -

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

Về cơ bản user_post là một mô hình một bài đăng là đối tượng của 20 dữ liệu được lưu hàng đầu. Tôi muốn gửi một mảng json nhưng tôi không thể chuyển đổi bài viết thành một mảng json. Tôi cũng đã thử serializers nhưng nó đã không giúp.

Tôi bị kẹt giúp tôi.

Xin cảm ơn trước.

Trả lời

20

Điều này có khắc phục được sự cố của bạn không?

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

Cảm ơn nó đã làm việc nhưng bây giờ tôi không thể nhận được dữ liệu. Bạn có thể vui lòng cho tôi biết làm thế nào tôi có thể lấy dữ liệu json ... ?? – aquaman

+0

Rất tiếc, đã xảy ra lỗi cho dòng posts = .... Cuộc gọi đến hàm all() bị thiếu. Nó có hiệu quả với bạn không? –

1

Tôi nghĩ rằng bạn có thể giải quyết điều này bằng cách sử dụng an toàn = false

trở JsonResponse (bài viết, an toàn = False)

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

     return JsonResponse(posts, safe=False)