पर मैप नहीं करता है, मैं एक मॉडल बनाना चाहता हूं जो डेटाबेस तालिका में मैप न करे। इसके बजाय, एक अजगर वस्तु के रूप में स्मृति में रहता है।एक Django मॉडल कैसे बनाएं जो डेटाबेस तालिका
दरअसल, यह मॉडल कई अन्य टेबल-मैप किए गए मॉडल से सामान्यीकृत डेटा का प्रतिनिधित्व करता है।
अन्य मॉडल डेटा संग्रह करते हैं जिसे एक ही दिन में कई बार संपादित किया जा सकता है। इन एकाधिक संपादनों के कारण, मैं एक टेबल-मैप-मॉडल नहीं चाहता जो सामान्यीकरण/गणना करता है और उन्हें डेटाबेस में संग्रहीत करता है, यह संग्रहीत डेटा तुरंत बाहर हो सकता है।
हर बार जब यह सामान्य मॉडल एक्सेस किया जाता है (व्यवस्थापक के माध्यम से), मैं चाहता हूं कि यह अन्य मॉडलों से डेटा पर सामान्यीकरण करने के लिए स्क्रैच से (ताकि यह सबसे अद्यतित डेटा दिखा सके) और सामान्य की तरह व्यवहार करें मॉडल सूची दृश्य दिखाएगा और प्रत्येक पंक्ति के लिए एक विस्तृत दृश्य जैसे व्यवस्थापक के अधीन होगा। Shintoist के जवाब के बाद
संपादित करें:
समाशोधन बातें बाहर और एक प्रयोग करने योग्य दृष्टिकोण प्रदान करने के लिए @Shintoist धन्यवाद। मैंने अभी इसे लागू किया है लेकिन अंत में एक छोटी दीवार मार रहा है :)
@skirmantas: हाँ, गणना एक अलग वस्तु में हैं। यह वस्तु कस्टम विचारों में पारित की जा रही है।
समस्या: एक समस्या यह है कि admin.py के तहत, मैंने इस ऑब्जेक्ट के लिए एक मॉडलडमिनक्लास बनाया है (जो मॉडलों का उत्तराधिकारी नहीं है। मॉडल) तो मेरे कस्टम विचार चेंजलिस्ट दृश्य और परिवर्तनदृश्य को ओवरराइड कर सकते हैं। मैं इस मॉडल-जैसी कक्षा और मॉडलडमिन पंजीकृत करने के लिए admin.site.register() का उपयोग करता हूं। लेकिन, चूंकि यह मॉडल एक डीजेंगो मॉडल नहीं है (क्योंकि यह स्मृति में एक स्वतंत्र पायथन वस्तु है) admin.site.register() एक "'प्रकार' ऑब्जेक्ट फेंकने योग्य नहीं है" त्रुटि। मैं admin.py के बजाय url.py का उपयोग नहीं करना चाहता क्योंकि यह फ्रंटेंड के लिए है, जबकि मैं बैकएंड-एडमिन को ओवरराइड करने का प्रयास कर रहा हूं।
मैं समझता हूं कि आप व्यवस्थापक का उपयोग करना चाहते हैं, लेकिन आपकी ज़रूरतों के लिए यह करने का एक बहुत ही गोल तरीका है। क्या आप व्यवस्थापक टेम्पलेट को पेज पर किसी लिंक के साथ यूआरएल पर ओवरराइड नहीं कर सकते जो आपके द्वारा लिखे गए दृश्य का उपयोग करता है? इस तरह यह व्यवस्थापक में "अंदर" होगा। Django स्वचालित रूप से टेम्पलेट्स की तलाश करेगा जो निर्मित इन्स को ओवरराइड करता है। अन्यथा मेरा सुझाव है कि आप टॉमसज़ ज़ीलिंस्की के समाधान के साथ जाएं। –
@ टोमास। अगर मैं स्मृति में किसी तालिका में मैप करने के लिए सामान्यीकरण मॉडल बनाता हूं, तो यह अभी भी स्थैतिक नहीं होगा। मेरा मतलब है, खोला जाने वाला मॉडल, अन्य मॉडलों, सामान्य/प्रक्रियाओं से नवीनतम डेटा प्राप्त करता है जो डेटा दिखाता है और एक सूची दिखाता है। अब औसत समय में, यदि कोई अन्य मॉडल संपादित करता है, तो यह सामान्यीकरण मॉडल में तब तक नहीं दिखाएगा जब तक कि सर्वर पुनरारंभ नहीं होता है (जो मेमोरी टेबल को फिर से लोड करेगा)। – sysasa
मैं भी जोड़ना चाहूंगा, मेरा डीजेंगो कार्यान्वयन पहले से ही तीन डेटाबेस का उपयोग करता है, जिसमें विरासत डेटा शामिल है (ताकि मैं इसे नई प्रणाली में माइग्रेट कर सकूं), एक SQLlite फिक्स्चर और तीसरे, मुख्य डेटाबेस के माध्यम से परीक्षण चलाने के लिए। इसका मतलब यह भी होगा कि, मैं केवल एक मॉडल के लिए चौथा डेटाबेस जोड़ूंगा। – sysasa