是我无法添加ManyToManyField的原因吗?

时间:2010-01-20 02:32:28

标签: python django django-models

所以我正在构建一个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 个答案:

答案 0 :(得分:3)

MagicType是否在相同的模型文件中声明(以及之前)Spell?

magic_types = models.ManyToManyField('MagicType')是否有效(引用'MagicType')?

答案 1 :(得分:3)

我建议您使用django-extensions,这将为您提供一个比evolution更好的commnad sqldiiff,因为在MagicType和MagicType之间创建中间表时会出现问题。

我建议你运行命令sqlall yourapp并直接执行新中间表创建的sql代码。进化不适合你:(