2011-02-28 9 views
9

मेरे पास दो साधारण मॉडल प्रश्न और विकल्प (एक प्रश्न में कई विकल्प हैं)। मैंने प्रश्न जोड़ने के साथ विकल्पों को जोड़ने के लिए इनलाइन फॉर्मेट का उपयोग किया है (मॉडल एडमिन कार्यक्षमता के माध्यम से)।django-ckeditor: इनलाइनों का उपयोग करके अपरिपक्व अपवाद

class Question(models.Model): 
    category = models.CharField(max_length=50) 
    question_text = RichTextField(max_length=2000, verbose_name="Question Text", blank=True) 

class Choice(models.Model): 
    question = models.ForeignKey(Question) 
    description = RichTextField(max_length=500, verbose_name="Choice Description") 
    is_correct = models.BooleanField(default=False) 

अब च्वाइस और प्रश्न के क्षेत्र RichTextField django-ckeditor में परिभाषित कर रहे हैं। मुद्दा यह है कि जब मैं "एक और विकल्प जोड़ें" पर क्लिक करता हूं तो मुझे uncaught exception: [CKEDITOR.editor] The instance "id_choice_set-__prefix__-description" already exists मिलता है, जो ckeditor कार्यक्षमता को बाधित करता है।

कोई भी विचार/सुझाव इस मुद्दे को कैसे ठीक करें? मुझे लगता है कि कुछ जे एस तोड़ मरोड़ मदद कर सकते हैं, लेकिन मैं जे एस/Jquery में एक बहुत ही सीमित ज्ञान

धन्यवाद

+0

मैंने व्यवस्थापक और grappelli दोनों की कोशिश की। न तो काम करते हैं। __prefix__ को संख्या के साथ प्रतिस्थापित किया जाना चाहिए, लेकिन ऐसा इसलिए नहीं है क्योंकि django javascript फ़ंक्शन में __prefix__ होने की अपेक्षा नहीं करता है। यहां कुछ विचार दिए गए हैं। django/contrib/admin/media/js/inlines.js देखें कि __prefix__ को कैसे बदला जाता है, यह जावास्क्रिप्ट में इसे प्रतिस्थापित नहीं करता है। मैंने अपना खुद का फ़ंक्शन कुछ लिखा है जैसे el.html (el.html()। प्रतिस्थापित करें (id_regex, प्रतिस्थापन)); यह जावास्क्रिप्ट कोड में इसे सही ढंग से बदल देता है। लेकिन तब तक यह गलत तरीके से निष्पादित किया गया। ckeditor/widgets.py में कोड है जो जावास्क्रिप्ट लिखता है, यह सुनिश्चित नहीं है कि यहां से कहां जाना है :( – Bufke

उत्तर

3

मुझे इसी तरह के मुद्दे का सामना करना पड़ा और एक फिक्स here मिला।

यह इनलाइन उपयोग के कारण होता है, कोशिश करने के लिए फोर्क संस्करण को स्थापित करने का प्रयास करें।

हालांकि 6 महीने बीतते हैं, उम्मीद है कि यह उन लोगों की मदद करेगा जिन्हें समान समस्या मिली है।

2

Line 66 of django-ckeditor's widgets.py वह जगह है जहाँ अपनी समस्याओं उत्पन्न करने लगता है।

अनिवार्य रूप से ऐसा लगता है कि final_attr['id'] के लिए प्रतिस्थापन है जहां आप __prefix__ से प्राप्त कर रहे हैं। ढांचे स्रोत कोड के माध्यम से देख रहे हैं, line 151 of Django's forms/formsets.py वह मूल्य है जहां से यह मूल्य आता है। साथ ही, स्रोत से, ऐसा लगता है कि यदि आप _get_empty_form() किसी भी तरह गलत तरीके से उपयोग कर रहे हैं, तो यह मान सभी मामलों में डिफ़ॉल्ट उपसर्ग i.e. 'फ़ॉर्म' द्वारा प्रतिस्थापित किया जाएगा।

यह उपयोगी है अगर आप प्रदान किया जाएगा/जवाब देने के निम्नलिखित:।

  1. एक बार अपने पेज प्रदान की गई है, लेकिन आप, पोस्ट टैग अपने गाया formset (incl से जिम्मेदार बताते हैं "एक और विकल्प जोड़ें" से पहले प्रबंधन फार्म)।

  2. क्या आप सीधे अपने कोड में किसी भी बिंदु पर _get_empty_form() का उपयोग कर रहे हैं?

  3. उस दृश्य के लिए कोड जहां आप फ़ॉर्मेट बनाते हैं और जहां आप इसे प्रस्तुत करते हैं।

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