मुझे लगता है कि इस मुद्दे को आप क्या चाहते हैं के बारे में उलझन में है। मुझे लगता है कि आप वास्तव में HTML को JSON की प्रतिक्रिया में डालने की कोशिश नहीं कर रहे हैं, बल्कि वैकल्पिक रूप से HTML या JSON पर लौटना चाहते हैं।
सबसे पहले, आपको दोनों के बीच मुख्य अंतर को समझने की जरूरत है। HTML एक प्रस्तुतिकरण प्रारूप है। यह डेटा की तुलना में डेटा को प्रदर्शित करने के तरीके से अधिक संबंधित है। JSON विपरीत है। यह शुद्ध डेटा है - मूल रूप से आपके पास कुछ पायथन (इस मामले में) डेटासेट का जावास्क्रिप्ट प्रतिनिधित्व है। यह केवल एक इंटरचेंज परत के रूप में कार्य करता है, जिससे आप अपने ऐप के एक क्षेत्र (दृश्य) से अपने ऐप के दूसरे क्षेत्र (आपके जावास्क्रिप्ट) पर डेटा स्थानांतरित कर सकते हैं, जो आम तौर पर एक-दूसरे तक नहीं पहुंचते हैं।
ध्यान में रखते हुए, आप JSON को "रेंडर" नहीं करते हैं, और इसमें कोई टेम्पलेट शामिल नहीं है। आप केवल जो भी डेटा प्ले में कनवर्ट करते हैं (सबसे ज्यादा संभावना है कि जो आप अपने टेम्पलेट के संदर्भ में गुजर रहे हैं)। जो कि Django के JSON लाइब्रेरी (सिंपलजसन) के माध्यम से किया जा सकता है, अगर यह फ्रीफ़ॉर्म डेटा है, या इसका क्रमांकन ढांचा है, अगर यह एक क्वेरीसेट है।
सिंपलसन
from django.utils import simplejson
some_data_to_dump = {
'some_var_1': 'foo',
'some_var_2': 'bar',
}
data = simplejson.dumps(some_data_to_dump)
क्रमबद्धता
from django.core import serializers
foos = Foo.objects.all()
data = serializers.serialize('json', foos)
किसी भी तरह से, आप फिर उस डेटा को प्रतिक्रिया में पास करते हैं:
return HttpResponse(data, content_type='application/json')
[संपादित करें] Django 1.6 और पहले में, प्रतिक्रिया वापस करने के लिए कोड था
return HttpResponse(data, mimetype='application/json')
[EDIT]: सिंपलसन को django से हटा दिया गया था , आप इसका उपयोग कर सकते हैं:
import json
json.dumps({"foo": "bar"})
या आप django.core.serializers
ऊपर वर्णित के रूप में उपयोग कर सकते हैं ।