好的,所以我最近发布了一个关于添加 ManyToManyField
时出错的问题模型如下
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)
这是我使用 django-evolution 进行迁移时遇到的错误:
AttributeError: 'ManyToManyField' object has no attribute '_get_m2m_column_name'
那么,有没有办法手动设置ManyToManyField而不在两个模型中指定它?让我们说这样的模型
class SpellToMagicType(models.Model):
magic_type = models.ForeignKey(MagicType)
spell = models.ForeignKey(Spell)
但我如何继续在 Django的ORM 中使用它?
非常感谢帮助。谢谢!
答案 0 :(得分:3)
同样的,我回答你的另一个问题Is a reason I can't add a ManyToManyField?这个错误基本上是因为你的模型中的代码(ORM)发生了变化而你的数据库没有变化,而django-evolution并没有解决许多问题。数据库,我建议你寻找django-extensions(http://code.google.com/p/django-command-extensions/)和命令sqldiff,但看看我的另一个答案
答案 1 :(得分:1)
这或多或少都是我做的方式。事实上,我很困惑为什么这不起作用,并在一个干净的Django 1.1环境中自己尝试 - 它可以游泳。
您是否尝试过自己将这个模型放在一个干净的环境中,看看你得到了什么?