मैं अपने Django प्रोजेक्ट में माप की विभिन्न प्रणालियों को लागू करना चाहता हूं, ताकि उपयोगकर्ता गीलेर चुन सकें, वे मीट्रिक या शाही इकाइयों का उपयोग करना चाहते हैं। हालांकि, मुझे नहीं पता कि ऐसा करने के लिए सही दृष्टिकोण क्या है।Django प्रोजेक्ट में माप की विभिन्न प्रणालियों की अवधारणा
वर्तमान में मेरे मॉडल में माप इकाई जागरूक फ़ील्ड नहीं हैं (वे पूर्णांक/दशमलव फ़ील्ड हैं) और मैं चाहूंगा कि मुझे सीधे अपने फ़ील्ड को बदलने की ज़रूरत नहीं है।
चूंकि मेरे वर्तमान डेटाबेस मान पहले से ही मीट्रिक मानों का प्रतिनिधित्व करते हैं, इसलिए मैं इसे इस तरह से रखने की योजना बना रहा हूं, जिसका अर्थ है कि मुझे उपयोगकर्ता इनपुट/मूल्य आउटपुट रूपांतरण को संभालना होगा। इस उद्देश्य के लिए Pint एक महान पुस्तकालय प्रतीत होता है।
क्या यह ऐप में फ़ील्ड संपादित किए बिना संभव है, लेकिन registration patterns या इसके बजाय कुछ और उपयोग कर रहा है? मैं जो हासिल करना चाहता हूं वह इस तरह कुछ है:
- मैं विभिन्न माप प्रकारों और संभावित मानों, जैसे कि लंबाई: मीटर, फीट धारण करने वाली डेटा संरचना को परिभाषित करता हूं; वजन: किलोग्राम, पाउंड इत्यादि
- मैं एक नई फ़ाइल "measments.py" या प्रत्येक ऐप निर्देशिका में समान कुछ जोड़ता हूं, जिसमें फ़ील्ड हैं जो माप मान रखते हैं। इस क्षेत्र में मैं परिभाषित कर सकता हूं कि सटीक माप फ़ील्ड क्या हैं और उनके प्रकार क्या हैं, जैसे फ़ील्ड = {mymodelfield: length, myothermodelfield: weight} आदि
- कुछ डिफ़ॉल्ट सेटिंग्स सेटिंग फ़ाइल में सेट की जा सकती हैं और ऐप में ओवरराइट की जा सकती हैं फ़ाइल, जैसे प्रत्येक माप के लिए डिफ़ॉल्ट इकाई (डेटाबेस जो डेटाबेस में संग्रहीत है)।
- उपयोगकर्ता प्रत्येक माप प्रकार के लिए अपनी वरीयता निर्धारित करता है। पिछले बिंदु में उल्लिखित प्रत्येक माप प्रकार के लिए डिफ़ॉल्ट इकाई है। प्राथमिकता/डिफ़ॉल्ट (संग्रहीत) इकाई मिलान के मामले में उपयोगकर्ता इनपुट को परिवर्तित करने के लिए तर्क आवश्यक है। बाउंड फॉर्म भी फील्ड वैल्यू को डिफॉल्ट से उपयोगकर्ता पसंदीदा इकाई में कनवर्ट करने में सक्षम होना चाहिए।
इस प्रकार का समाधान मौजूदा ऐप्स को प्लग करना आसान बनाता है क्योंकि ऐप में कोई फ़ील्ड और फॉर्म सीधे नहीं बदला जाएगा। पंजीकरण पैटर्न का उपयोग कर बुनियादी उदाहरण उपयोगी होंगे।
गैर-Django परियोजनाओं में यह कैसे किया जाता है, सामान्य विचारों और पैटर्न सहित किसी भी प्रासंगिक जानकारी का स्वागत है।
मैं दान के जवाब के आधार पर कस्टम क्षेत्रों के साथ इकाई रूपांतरण प्राप्त करने में कामयाब रहे हैं और इस [recource] (http://tothinkornottothink.com/post/10815277049/django-forms-i- - एक नज़र कस्टम क्षेत्रों और विगेट्स में विस्तार)। –