2015-02-26 8 views
7

मैं Django में json सरणी बनाने के लिए कोशिश कर रहा हूँ, लेकिन मैं त्रुटि हो रही है -बनाना json सरणी

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

और मेरे views.py -

def wall_copy(request): 
    if True: 
     posts = user_post.objects.order_by('id')[:20].reverse() 
     return JsonResponse(posts) 
मूल रूप से user_post

एक मॉडल एक है पोस्ट शीर्ष 20 सहेजे गए डेटा का उद्देश्य है। मैं एक जेसन सरणी भेजना चाहता हूं लेकिन मैं पोस्ट को जेसन सरणी में बदलने में असमर्थ हूं। मैंने धारावाहिकों की भी कोशिश की लेकिन इससे मदद नहीं मिली।

मैं कृपया मेरी सहायता कर रहा हूं कृपया मुझे मदद करें।

अग्रिम धन्यवाद।

उत्तर

20

क्या यह आपकी समस्या का समाधान करेगा?

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

धन्यवाद यह काम करता है लेकिन अब मैं डेटा प्राप्त करने में असमर्थ हूं। क्या आप कृपया मुझे बता सकते हैं कि मैं जेसन डेटा कैसे प्राप्त कर सकता हूं ... ?? – aquaman

+0

क्षमा करें वहाँ एक गलती थी पदों = ... लाइन। सभी() फ़ंक्शन पर कॉल गुम था। क्या यह अब आपके लिए काम करता है? –

0

मान विधि का उपयोग करने का प्रयास करें: http://django.readthedocs.org/en/1.7.x/ref/models/querysets.html#django.db.models.query.QuerySet.values। यह आपको आवश्यक वस्तुओं के क्षेत्रों के लिए dict-like प्रतिनिधित्व प्रस्तुत करेगा।

+0

अरे मैं इसे करने की कोशिश की, लेकिन यह मेरे लिए काम किया नहीं था। सलाह के लिए वैसे भी धन्यवाद, यह कुछ नया था। – aquaman

1

मुझे लगता है कि आप सुरक्षित = false

वापसी JsonResponse (पोस्ट, सुरक्षित = false) का उपयोग करके इस हल कर सकते हैं

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

     return JsonResponse(posts, safe=False) 
संबंधित मुद्दे