تعبئة قيمة json محددة إلى html باستخدام قالب django

0

أنا جديد على json ولست على دراية به.

في ملف عرض Django الخاص بي ، أريد تمرير قيم json معينة فقط: المدرسة والعنوان واسم كل طالب (Andy، Tom، Jack) والمعرف (Andy.id، Tom.id، Jack.id) إلى html من عرض Django . كيف يمكنني تحقيق الحالة المذكورة أعلاه؟

محتوى json الخاص بي هو:

{
  "school": "xxx", 
  "address": "xxx", 
  "number": "xxx,
  "students": {
      "Andy": {
        "id": "xxx", 
        "add": "xxx"
      }, 
      "Tom": {
        "id": "xxx", 
        "add": "xxx"
      }, 
      "Jack": {
        "id": "xxx", 
        "add": "xxx"
      }, 
    },  
}

في view.py ، لقد حصلت على هذه الرموز. jresult هو سلسلة json واستخدمت json.dumps () لتوليد JSON ، ولكن سيتم ملء جميع بيانات json في html. كيف يمكنني تحقيق الحالة المذكورة أعلاه؟ سيكون موضع تقدير أي مساعدة.

def model_form_upload(request):
    if request.method == 'POST':
        form = FileForm(request.POST, request.FILES)
        if form.is_valid():
            file = request.FILES['file'].read()
            jresult = execution(file)
            json_string = json.dumps(jresult, indent=4)

            return render(request,
                          'virus/home.html',
                          {'json_string': json_string})

    else:
        form = FileForm()
    return render(request, 'virus/upload.html', {
        'form': form
    })

نموذج my home.html:

<body>
    <pre>{{ json_string|safe }}</pre>
</body>

2 الاجابة

1
افضل جواب

يمكنك التخطي باستخدام json.dumps ويمرر فقط dict الكائن ثم في القالب الوصول إلى المفاتيح للحصول على القيم.

مثال :

<!-- template -->

School: {{ json_dict.school }}
Address: {{ json_dict.address }}
<!-- and so on -->
:مؤلف
1
افضل جواب

كائن JSON هو تقريبًا قاموس Python. مع وضع ذلك في الاعتبار إذا كنت تريد التصفية لبعض المفاتيح فقط في القاموس ، يمكنك استخدام فهم القاموس وكتابة شيء مثل:

jresult = {k:v for k,v in jresult.items() if k in wanted_keys}

قبل الاتصال json.dumps على الجرذ. أين wanted_keys = ['school', 'address', 'number', 'students'] . إذا كنت تقوم بتصفية 'students' القاموس كذلك يمكنك القيام بشيء مشابه لما سبق لهذا المفتاح المحدد.

:مؤلف
فوق
قائمة طعام