मुझे अपना खुद का इंटरमीडिएट मॉडल बनाना होगा।django में auto_created विशेषता का सही तरीके से उपयोग कैसे करें?
class class1(models.Model)
class class2(models.Model):
field1 = models.ManyToManyField(class1, through="class3")
class class3(models.Model):
field1 = models.ForeignKey(class1)
field2 = models.ForeignKey(class2)
field3 = models.IntegerField()
class Meta:
auto_created = True
मैं का उपयोग करें "auto_created = सच" क्योंकि निम्न कोड में, मैं त्रुटि थी:
AttributeError:() एक ManyToManyField जो एक मध्यस्थ के मॉडल को निर्दिष्ट करता है पर जोड़ने का उपयोग नहीं कर सकते।
for m2m_field in self._meta.many_to_many:
for m2m_link in getattr(self, m2m_field.get_attname()).all():
getattr(to_object, m2m_field.get_attname()).add(m2m_link)
अब यह ठीक काम करता है, लेकिन जब मैं एक makemigration करने की कोशिश, Django मेरी class3 (मध्यवर्ती वर्ग) को हटाने के लिए चाहता है, और class2 में फ़ील्ड 1 में "के माध्यम से" विशेषता को हटाने।
मैं क्या गलत कर रहा हूं? कोई समाधान?
सभी को टक्स करें।
मेरे पास एक ही समस्या है और यहां मेरा समाधान है (रेफरी: https://stackoverflow.com/questions/28693691/how-to-fake-migrations-for-not-to-create-a- विशिष्ट- existing -इंटरमीरी-टेबल) आप ऑटो जनरेटेड स्क्रिप्ट प्राप्त करने के लिए "makemigrations" चला सकते हैं, फिर वहां लागू और अनुपयोगी विधि को ओवरराइड करें ताकि जब आप "माइग्रेट" कमांड चलाते हैं तो उन परिचालनों को नहीं चलाया जाएगा। – user3099733