为什么我无法添加ManyToManyField?
我正在构建一个Django应用程序,
这是我有的一些模型:
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)
在同步这些模型时,我遇到了这个错误:
AttributeError: 'ManyToManyField' object has no attribute '_get_m2m_column_name'
这是什么原因导致的呢?我该如何解决这个问题?
非常感谢大家的帮助。
补充:
我正在使用django-evolution http://code.google.com/p/django-evolution/
2 个回答
3
MagicType是不是在同一个模型文件里,并且在Spell之前声明的?
magic_types = models.ManyToManyField('MagicType')
这样写可以用吗?(这里的'MagicType'是用引号括起来的)
3
我建议你使用django-extensions,这样你就可以使用一个叫做 sqldiiff
的命令,它比evolution更好用,因为在MagicType和MagicType之间创建中间表时会出现问题。
我建议你运行命令 sqlall yourapp
,然后直接执行创建新中间表的SQL代码。evolution不会帮你做到这一点 :(