2012-02-17 10 views
5

मैंने एक django मॉडल बनाया है जहां आवश्यक फ़ील्ड अन्य पिछले क्षेत्रों में उपयोगकर्ता के चयन के आधार पर बदलते हैं। विशेष रूप से, यह एक ईवेंट शेड्यूलिंग एप्लिकेशन है जहां विकल्प उपयोगकर्ता द्वारा किए गए विकल्पों के आधार पर बदलते हैं।Django व्यवस्थापक अन्य चयनों के आधार पर गतिशील रूप से अक्षम क्षेत्र

फ़ील्ड के कुछ संयोजन केवल अमान्य हैं, और मेरे पास मॉडल की जांच करने के लिए सेट है और उन्हें अनुमति नहीं है। हालांकि, सही संयोजनों को समझने के लिए यूआई में थोड़ा उलझन में है। मैं व्यवस्थापक UI को अमान्य फ़ील्ड को छिपाने या अक्षम करके इसकी सहायता करने के लिए चाहता हूं क्योंकि उपयोगकर्ता अन्य फ़ील्ड बदलता है।

उदाहरण के लिए, यदि उपयोगकर्ता साप्ताहिक कार्यक्रम को दोहराने का विकल्प चुनता है, तो मुझे दैनिक और मासिक फ़ील्ड को अक्षम करने (या आदर्श रूप से हटाने) की आवश्यकता होती है और केवल सप्ताह के दिन जैसे साप्ताहिक दिखाते हैं।

इसके अलावा, यदि वे वापस जाते हैं और इसे दैनिक रूप में बदलते हैं, तो दिखाए गए या सक्षम फ़ील्ड को उस चयन को प्रतिबिंबित करने के लिए बदलने की आवश्यकता है।

मैं व्यवस्थापक फॉर्म कैसे स्थापित करूं ताकि ऐसा होता है? मुझे पता है कि यह डोम और जावास्क्रिप्ट के माध्यम से करने योग्य है, लेकिन मैं यह निर्धारित करने की कोशिश कर रहा हूं कि Django में निर्मित इस के लिए कोई तंत्र है या नहीं। मैं Django दस्तावेज़ खोज रहा हूं, लेकिन मुझे यह प्रतीत नहीं होता है।

क्या किसी के पास एक उदाहरण है जो दिखाता है कि आपने समान काम कैसे किया है?

+0

Django में इसके लिए कोई "तंत्र" नहीं है। जावास्क्रिप्ट आपका एकमात्र विकल्प है। जावास्क्रिप्ट का उपयोग करने में क्या गलत है? –

उत्तर

3

समाधान में कोई निर्माण नहीं है।

सरल समाधान आपके व्यवस्थापक को कस्टम जावास्क्रिप्ट कोड जोड़ना है। reference here देखें। बस जेएस और सीएसएस फ़ाइलों को व्यवस्थापक वर्ग में जोड़ें और अपने कस्टम जेएस में फॉर्म स्क्रिप्ट करें।

class ReportAdmin(admin.ModelAdmin): 

    class Media: 
     js = (
      'frontend/js/jquery-1.6.1.min.js', 
      'frontend/js/jquery-ui.min.js', 
      'frontend/js/custom_js.js', 
     ) 
+3

आपको मॉडल की क्लीन विधि को अपडेट करने की भी आवश्यकता है, अन्यथा यदि उपयोगकर्ता जावास्क्रिप्ट को संशोधित या बंद कर देता है तो उपयोगकर्ता अमान्य डेटा सबमिट कर सकता है। – jterrace

संबंधित मुद्दे