Erreur lors de l'ajout d'un ManyToManyField dans Django
-
21-09-2019 - |
Question
Ok, donc j'ai posté une question récemment au sujet d'une erreur lors de l'ajout d'un ManyToManyField
Les modèles sont ceux ci-dessous
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)
Ceci est l'erreur que je reçois lors de la migration avec django-évolution :
AttributeError: 'ManyToManyField' object has no attribute '_get_m2m_column_name'
Alors, est-il un moyen de régler manuellement un ManyToManyField sans le spécifier dans les deux modèles? disons avec un modèle comme celui-ci
class SpellToMagicType(models.Model):
magic_type = models.ForeignKey(MagicType)
spell = models.ForeignKey(Spell)
mais comment pourrais-je continuer à utiliser ce dans les ORM de Django ?
L'aide serait très apprécié. Merci!
La solution
Même chose, répondre à votre autre question est une raison pour laquelle je ne peux pas ajouter un ManyToManyField? basiquement cette erreur est parce que votre code dans les modèles (ORM) changement, mais la base de données ne sont pas, et django-évolution ne je vous suggère de regarder résout pas de problèmes avec les changements dans la base de données, pour django-extensions ( http://code.google.com/p/django-command-extensions/ ) et la commande sqldiff, mais regardez mon autre réponse
Autres conseils
Ceci est plus ou moins la façon dont je l'aurais fait. En fait, je perplexe au sujet de pourquoi cela ne fonctionne pas, et essayé moi-même dans un environnement Django 1.1 propre - il fonctionne à merveille
.Avez-vous essayé de mettre ce modèle dans un environnement propre et vous voir ce que vous obtenez?