मैं एक परियोजना के लिए एक वेब आधारित अनुप्रयोग बनाने के लिए Django उपयोग कर रहा हूँ करने के लिए एक Django दृश्य से JSON सारणी रिटर्निंग, और मैं एक टेम्पलेट के लिए एक Django दृश्य से एक सरणी लौटने मुद्दों में चल रहा हूँ।एक टेम्पलेट
सरणी एक छवि पेज में दिखाया गया है पर बक्से ड्राइंग के लिए एक जावास्क्रिप्ट (JQuery) स्क्रिप्ट द्वारा उपयोग किया जाएगा। इसलिए, इस सरणी में अन्य चीजों के साथ, बक्से तैयार किए जाने के लिए समन्वय होगा। ,
def annotate(request, ...):
...
oldAnnotations = lastFrame.videoannotation_set.filter(ParentVideoLabel=label)
tags = serializers.serialize("json", oldAnnotations)
...
return render_to_response('vannotate.html', {'tags': tags, ...})
डिबगिंग के एक तरीके के रूप में टेम्पलेट के एचटीएमएल हिस्से में {{ tags }}
का उपयोग कर उत्पादन के रूप में इस देता है:
यह Django दृश्य JSON के रूप में आवश्यक डेटा मिलता है और यह क्रमानुसार करने के लिए इस्तेमाल किया में कोड है (लंबी लाइन के लिए खेद है):
[{"pk": 491, "model": "va.videoannotation", "fields": {"ParentVideoFile": 4, "ParentVideoFrame": 201, "ParentVideoLabel": 4, "top": 220, "height": 30, "width": 30, "ParentVideoSequence": 16, "left": 242}}, {"pk": 492, "model": "va.videoannotation", "fields": {"ParentVideoFile": 4, "ParentVideoFrame": 201, "ParentVideoLabel": 4, "top": 218, "height": 30, "width": 30, "ParentVideoSequence": 16, "left": 307}}]
जो मुझे लगता है कि एक JSON सरणी के लिए सही प्रारूप है।
बाद टेम्पलेट में, मैं, इस प्रकार वास्तव में टेम्पलेट के लिए जावास्क्रिप्ट हिस्से में tags
चर का उपयोग करने का प्रयास:
{% if tags %}
var tagbs = {{ tags|safe }};
var tgs = JSON.parse(tagbs);
alert("done");
{% endif %}
अगर मैं var tgs = JSON.parse(tagbs);
लाइन निकालें, तब चेतावनी बॉक्स अप ठीक पॉप , और बाकी जावास्क्रिप्ट अपेक्षित काम करता है। हालांकि, इस लाइन को लिपि में छोड़कर लिपि को छोड़ दिया गया है।
मैं Django मॉडल में सभी वस्तुओं के माध्यम से पुनरावृति और जावास्क्रिप्ट में क्षेत्रों के मूल्यों को प्राप्त करने में सक्षम होना चाहता हूँ।
मुझे यकीन है कि मैं गलत यहाँ क्या कर रहा हूँ नहीं कर रहा हूँ, किसी को ऐसा करने के लिए सही तरीके से बाहर बिंदु सकता है?
आप जावास्क्रिप्ट को डेटा भेजने वाले नहीं, तो आप स्क्रिप्ट में सर्वर साइड पर इंजेक्शन लगाने के हैं और इसलिये कोड क्लाइंट पर JavaScript रूप में व्याख्या की है। यदि आप स्रोत पर एक नज़र डालते हैं, तो आप देखेंगे कि यह एक सामान्य सरणी शाब्दिक है। यह इस संदर्भ में JSON नहीं है, इसलिए आप इसे पार्स नहीं कर सकते हैं। –