2014-04-09 2 views
6

इस अपवाद के बारे में कई सवाल कर रहे हैं:ऐड() ManyToManyField के लिए जो एक मध्यस्थ के मॉडल को निर्दिष्ट

AttributeError: Cannot set values on a ManyToManyField which specifies 
an intermediary model. 
Use myapp.MyThroughModel's Manager instead. 

docs

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

लेकिन MyThroughModel के मेरे सभी गुण/कॉलम वैकल्पिक हैं। प्रबंधक उन्हें बना सकता है।

स्वचालित रूप से MyThroughModel उदाहरण बनाने के लिए मैं एक कस्टम प्रबंधक कैसे लिख सकता हूं?

मुझे ओआरएम-स्तर पर एक समाधान की आवश्यकता है, फॉर्म-स्तर नहीं।

class MyThroughModel(Model): 
    class Meta(): 
     auto_created=True 
    ... 

अद्यतन

यह Django आंतरिक माइग्रेशन के साथ मुद्दों बनाता है:

उत्तर

7

मैं एक तरह से अतिरिक्त डेटा की अनदेखी करने Django बताने के लिए मिल गया। हमने अपना कोड अपडेट किया है और auto_created = True का उपयोग नहीं किया है।

+0

मेरे लिए, यह समाधान माइग्रेशन को तोड़ देता है। makemigrations इस विकल्प सेट के साथ मॉडल के माध्यम से हटाना चाहता है। –

+0

@RobinElvin आप किस django का संस्करण उपयोग करते हैं? – guettli

+0

तो अब आप क्या करते हैं? – Bob

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