2008-09-22 5 views
7

मैं व्यवस्थापक में कुछ मॉडल सहेजने से पहले हटाए गए पुष्टिकरण पृष्ठ व्यवहार का अनुकरण करना चाहता हूं। मेरे मामले में यदि मैं एक ऑब्जेक्ट बदलता हूं, कुछ अन्य को हटा दिया जाना चाहिए क्योंकि वे अब ऑब्जेक्ट के पर निर्भर हैं।Django व्यवस्थापक में सहेजने वाले पुष्टिकरण पृष्ठ को कहां रखा जा सकता है? (पुष्टिकरण हटाने के समान)

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

किसी भी विचार, यहां तक ​​कि सामान्य बिंदु django codebase में भी?

धन्यवाद!

+0

हाय, मैं बस एक ही प्रश्न पोस्ट करने वाला था। क्या आप इस समस्या के साथ कहीं भी पाने का प्रबंधन करते थे? –

+0

नहीं, मैंने इसे कभी नहीं निकाला। यह मेरे मामले में एक बहुत ही आम ऑपरेशन नहीं था इसलिए मैंने अभी दंडित किया। –

उत्तर

1

मैं किसी भी तरह से Django विशेषज्ञ नहीं हूं, इसलिए यह जवाब आपको गुमराह कर सकता है।

django.contrib.admin.options.ModelAdmin, विशेष रूप से render_change_form और response_change के आसपास कहीं भी देखना शुरू करें। मुझे लगता है कि आपको अपने मॉडल के लिए ModelAdmin को उप-वर्ग करना होगा और उन तरीकों के आस-पास आवश्यक व्यवहार प्रदान करना होगा।

2

आप अपने मॉडल व्यवस्थापक की get_form विधि को अधिभारित कर सकते हैं और जेनरेट किए गए फॉर्म में अतिरिक्त चेकबॉक्स जोड़ सकते हैं। वैकल्पिक रूप से आप change_view ओवरराइड कर सकते हैं और अनुरोध को रोक सकते हैं।

+0

इस तरह हम इसे करते हैं, लेकिन मैं एक पुष्टि स्क्रीन को लागू करने के लिए बहुत आसान होने के लिए जावास्क्रिप्ट का उपयोग कर देख सकता था। – Gromer

0

क्या आपने मॉडल के लिए प्रशासनिक टेम्पलेट्स को ओवरराइड करने पर विचार किया है? यह link प्रक्रिया का उत्कृष्ट अवलोकन प्रदान करता है। इस विशेष स्थिति में, वांछित परिणाम प्राप्त करने का सबसे अच्छा तरीका हो सकता है, नियंत्रण का एक बेहतर स्तर हो सकता है।

+0

मैंने पहले से ही बदलाव_फॉर्म के हिस्सों को अधिभारित कर दिया है, लेकिन यह विशेष व्यवहार कोर में हार्ड कोड किया जाता है (कम से कम पोस्ट यूआरएल को रीडायरेक्ट करता है)। शायद मैं पोस्ट सेव पुष्टिकरण यूआरएल छाया कर सकता हूं और यद्यपि कुछ मज़ाकिया कर सकता हूं? –

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