2

好的,所以我最近发布了一个关于添加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中继续使用它?

帮助将不胜感激。谢谢!

4

2 回答 2

3

同样的事情,我回答你的另一个问题是我不能添加 ManyToManyField 的原因吗?基本上这个错误是因为你的模型(ORM)中的代码发生了变化,但你的数据库没有,并且 django-evolution 并没有解决数据库中的许多问题,我建议你寻找 django-extensions (http://code .google.com/p/django-command-extensions/)和命令 sqldiff,但看看我的另一个答案

于 2010-01-21T07:05:45.387 回答
1

这或多或少是我会做的方式。事实上,我对为什么这不起作用感到困惑,并在一个干净的 Django 1.1 环境中自己尝试了它——它运行得很好。

你有没有试过把这个模型放在一个干净的环境中,看看你得到了什么?

于 2010-01-21T02:36:16.553 回答