पहले थोड़ा सा पृष्ठभूमि:विशिष्ट मॉडल के लिए Django व्यवस्थापक URL ओवरराइड करें?
मेरे पास Event
मॉडल है जिसमें विभिन्न event_type
एस हैं। मैं उन कार्यक्रमों में से एक को 'फिल्म', अपने स्वयं के व्यवस्थापक में तोड़ना चाहता हूं। मेरे पास मूलभूत कार्यक्षमता है: Event
से प्राप्त प्रॉक्सी मॉडल, Film
नामक प्रॉक्सी मॉडल, उस प्रॉक्सी मॉडल के लिए एक कस्टम मैनेजर जो इसे केवल 'फिल्म' ईवेंट प्रकारों में फ़िल्टर करता है, और यह स्वयं का मॉडलएडमिन है।
समस्या रिवर्स के साथ है। अब मुझे मुख्य Event
व्यवस्थापक से फिल्मों को फ़िल्टर करने की आवश्यकता है। मैं Event
मॉडल या उसके डिफ़ॉल्ट प्रबंधक को बदलना नहीं चाहता, क्योंकि प्रभाव बहुत व्यापक होगा। इसलिए, मैंने व्यवस्थापक में घटनाओं की एक फ़िल्टर सूची प्रदान करने के एकमात्र उद्देश्य के साथ, एक और प्रॉक्सी मॉडल, EventAdminProxy
बनाने का प्रयास किया। मैं मौजूदा मॉडलएडमिन के साथ Event
के बजाय, इस मॉडल को पंजीकृत करता हूं।
यह स्पष्ट रूप से काम करता है, लेकिन व्यवस्थापक में यूआरएल को बदलने का दुर्भाग्यपूर्ण दुष्प्रभाव है। चेंजलिस्ट के बजाय "/ admin/event/event /" पर होने के बजाय, यह अब "/ admin/event/eventadminproxy /" पर है।
जो मैं करने की कोशिश कर रहा हूं वह इस सेटअप को बनाए रखता है, लेकिन पुराना यूआरएल भी रखता है। मैंने ModelAdmin की get_urls
विधि को अधिभारित करने का प्रयास किया है, लेकिन मैं जो कह सकता हूं उससे, आप वहां पूर्ण यूआरएल को नियंत्रित नहीं कर सकते हैं, केवल "/ app_label/model_class /" भाग के बाद आता है।
मैंने इसे मुख्य urls.py में ओवरराइड करने के बारे में सोचा, लेकिन इसमें शामिल होने के लिए एक स्वीकार्य दृश्य नहीं पता लगाया जा सकता है। वास्तविक विचार केवल तत्काल मॉडलएडमिन ऑब्जेक्ट पर उपलब्ध हैं, न कि क्लास स्वयं।
व्यवस्थापक में यूआरएल का उपयोग कैसे किया जा रहा है इसके बारे में कोई विचार?
ठीक है। उसमें से एक को "मैं मूर्ख हूं" श्रेणी में जोड़ें।विश्वास नहीं कर सकता मैंने उस बारे में नहीं सोचा था। धन्यवाद! –