Django मॉडल से जावास्क्रिप्ट ऑब्जेक्ट जेनरेट करें

मैं ब्राउज़र में बहुत सारे जावास्क्रिप्ट काम कर रहा हूं और फ्रंट-एंड में उस बैकएंड कार्यक्षमता में से कुछ चाहते हैं। विशेष रूप से, यह अच्छा होगा कि get() , save() , all() और count() </कोड> ग्राहक के लिए उपलब्ध है। इसके अतिरिक्त, जेनरेट की गई जावास्क्रिप्ट ऑब्जेक्ट में पहले से उपलब्ध मॉडल की फ़ील्ड सूची होना बहुत अच्छा होगा।

चाहे मौजूदा उपयोगकर्ता रिकॉर्ड पढ़ या लिख ​​सकता है, एक अलग मुद्दा है जो मैं Django के प्रमाणीकरण का उपयोग करने के साथ सौदा करूँगा। समय के लिए, पुनर्प्राप्ति एक शुरुआत होगी।

संक्षेप में, क्या कोई कोड है जो Django मॉडल से जावास्क्रिप्ट मॉडल उत्पन्न करेगा?

धन्यवाद।

5

5 उत्तर

ऐसा लगता है कि आप मॉडल और क्वेरीसेट एपीआई के लिए एक पूर्ण जावास्क्रिप्ट इंटरफेस की तलाश में हैं। मैं कल्पना नहीं कर सकता कि यह कभी किया गया होगा या यहां तक ​​कि एक साधारण काम भी होगा। न केवल आपको मॉडल के जावास्क्रिप्ट उदाहरणों को उत्पन्न करने की आवश्यकता होगी (जेएसओएन सीरियलाइजेशन से कहीं अधिक प्रदान करता है, क्योंकि आप विधियों को भी चाहते हैं) लेकिन आपको एक ऐसी वेब सेवा का खुलासा करना होगा जो हर प्रकार की डीबी-एपीआई कॉल को संभाल सके। मैं यह भी कल्पना नहीं कर सकता कि कहां से शुरू करना है और सुरक्षा समस्याएं आसानी से दूर होने के लिए बहुत अधिक हो सकती हैं।

वैकल्पिक (और बहुत आसान) दृष्टिकोण विभिन्न Django आरईएसटी मॉड्यूल और जेएसओएन serialization में से एक का उपयोग करना होगा। आप किसी संसाधन पर AJAX GET अनुरोध कर सकते हैं, जिसे क्वेरी पैरामीटर की एक श्रृंखला द्वारा पहचाना जा सकता है जो कि जंजीर क्वेरीसेट फ़िल्टर के बराबर होगा। यह मॉडल के मूल्यों के JSON प्रतिनिधित्व को वापस कर देगा। फिर आप जावास्क्रिप्ट ऑब्जेक्ट को संशोधित कर सकते हैं और सर्वर पर वापस आने के लिए ओवरलोडेड AJAX POST अनुरोध का उपयोग कर सकते हैं। आपके पास मॉडल के तरीकों तक पहुंच नहीं होगी, ताकि कार्यक्षमता को फिर से कार्यान्वित किया जाना पड़े लेकिन मॉडल में कोई भी बदलाव करना पर्याप्त रूप से पर्याप्त होना चाहिए - यह मूल रूप से डेटा को संशोधित करने के लिए HTML फॉर्म का उपयोग करने के लिए जावास्क्रिप्ट समकक्ष है।

7
जोड़ा
हाँ, मुझे लगता है कि यह सही दृष्टिकोण है। शायद आप jacobian.org/writing/rest-worst-practices शायद पढ़ना चाहते हैं शुरू करने से पहले, हालांकि।
जोड़ा लेखक Density 21.5, स्रोत

You need a data serializer. You can do it with django built in serializers. It is documented on official django site. djangoproject_topics-serialization

1
जोड़ा

I've started a project that I think does exactly what you're looking for. You can find it at github_bumby_jslib.
It currently only supports get(), but I'm hoping to extend this soon. Feel free to contribute patches :)

jslib एक Django एप्लिकेशन है जो आपके Django परियोजनाओं के साथ AJAX एकीकरण को सरल बनाने का लक्ष्य रखता है।

1
जोड़ा

तो यह थोड़ी देर हो गया है क्योंकि मैंने मूल प्रश्न पोस्ट किया था और तब से Djangoland में कई विकास हुए हैं। जिनमें से कम से कम एक छोटी सी लाइब्रेरी है जिसे डैंजो रीस्ट फ्रेमवर्क कहा जाता है। मैं इसे एक नई परियोजना पर इस्तेमाल करूँगा और यह सुंदर केवल देख रहा है।

http://www.django-rest-framework.org

0
जोड़ा

ऐसा लगता है कि आप अपने ऑब्जेक्ट डेटा को JSON एन्कोड करना चाहते हैं । डेटा प्रारूप पर अधिक जानकारी के लिए JSON.org देखें।

0
जोड़ा
JSON एन्कोड केवल ऑब्जेक्ट डेटा प्रदान करता है। यह संदर्भ मॉडल (या इसका नाम) और कार्यक्षमता में से कोई भी प्रदान नहीं करता है। :(
जोड़ा लेखक Dimitry, स्रोत