اذهب إلى المحتوى
  • 0

كيفية تحويل QuerySet إلى JSON في جانغو Django؟

Mohssen A Mohssen

السؤال

أحاول عرض مجموعة من القائمة من حسابات المستخدمين الذين أحصل عليهم من قاعدة البيانات ثم أقوم بتحويل القائمة إلى JSON

class UsersListView(ListView):
    queryset  = Users.objects.all()

    def get(self, request, *args, **kwargs):
        data = json.dumps({'data': "أريد تحويل قائمة المستخدمين هنا"})
        return HttpResponse(data, content_type='application/json')

حاولت إستخدام الكود التالي:

json.dumps({"data": self.get_queryset()})

لكن هذا الكود لا يعمل، ما هي طريقة تحويل QuerySet إلى JSON؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

الشفرة لا تعمل لأن جانغو QuerySet  ليست قابلة للتسلسل. لجعلها كذلك تُوجد عدة طُرق:

  • الطريقة الأولى: تحويل ال QuerySet إلى قائمة (list) ثم تحويل القائمة إلى JSON
    class UsersListView(ListView):
        queryset  = Users.objects.all()
    
        def get(self, request, *args, **kwargs):
          	data = list(self.queryset.values()) # نحولها إلى قائمة
            return JsonResponse(data, safe=False) # بعدهها نُرجع القائمةة على شكل JSON

     

  • الطريقة الثانية: استعمال الدالة serializers من الوحدة django.core التي تسمح بترجمة جانغو QuerySet  إلى تنسيقات أخرى مثل ال xml، json 

    from django.core import serializers # نقوم باستدعاء الدالة
    
    class UsersListView(ListView):
        queryset  = Users.objects.all()
    
        def get(self, request, *args, **kwargs):
          	#نحول البيانات إلى json
          	data = serializers.serialize('json', self.queryset) 
            return HttpResponse(data, content_type='application/json')

     

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...