Fehler beim Hinzufügen eines ManyToManyField in Django
-
21-09-2019 - |
Frage
Ok, so dass ich eine Frage vor kurzem in Bezug auf einen Fehler gebucht, wenn das Hinzufügen eines ManyToManyField
Die Modelle sind die, die unter
class MagicType(models.Model):
name = models.CharField(max_length=155)
parent = models.ForeignKey('self', null=True, blank=True)
class Spell(models.Model):
name = models.CharField(max_length=250, db_index=True)
magic_words = models.CharField(max_length=250, db_index=True)
magic_types = models.ManyToManyField(MagicType)
Das ist der Fehler, den ich bekomme bei der Migration mit django-evolution :
AttributeError: 'ManyToManyField' object has no attribute '_get_m2m_column_name'
So ist es eine Möglichkeit, manuell einen ManyToManyField Einstellung ohne es innerhalb der beiden Modelle an? sagen wir mal mit einem Modell wie dieses
class SpellToMagicType(models.Model):
magic_type = models.ForeignKey(MagicType)
spell = models.ForeignKey(Spell)
aber wie würde ich mich auf über die Verwendung dieses innerhalb von Django ORM
Hilfe sehr geschätzt würde. Dank!
Lösung
Die gleiche Sache, ich beantworten Ihre andere Frage Ist ein Grund, warum ich nicht ein ManyToManyField hinzufügen? basicly dieser Fehler ist, weil Ihr Code in Modelle (ORM) ändern, aber Ihre Datenbank ist nicht, und django-evolution behebt nicht viele Probleme mit Änderungen in der Datenbank, ich schlage vor, Sie suchen nach django-Erweiterungen ( http://code.google.com/p/django-command-extensions/ ) und der Befehl sqldiff, aber Blick meine andere Antwort
Andere Tipps
Dies ist mehr oder weniger so, wie ich es getan hätte. In der Tat war ich verwirrt darüber, warum dies nicht funktioniert, und versuchte es selbst in einem sauberen Django 1.1-Umgebung - es funktioniert swimmingly
.Haben Sie versucht, dieses Modell in einer sauberen Umgebung setzen sich selbst und sehen, was Sie bekommen?