编程语言
首页 > 编程语言> > python-在Django中添加ManyToManyField时出错

python-在Django中添加ManyToManyField时出错

作者:互联网

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

帮助将不胜感激.谢谢!

解决方法:

同样,我回答了另一个问题Is a reason I can’t add a ManyToManyField?,基本上,该错误是因为您的模型中的代码(ORM)发生了变化,但是您的数据库没有发生变化,并且django-evolution无法解决数据库中发生的许多变化,我建议您寻找django-extensions(http://code.google.com/p/django-command-extensions/)和命令sqldiff,但是看我的另一个答案

标签:django-orm,python,django,django-models,django-evolution
来源: https://codeday.me/bug/20191106/2001697.html