Это причина, по которой я не могу добавить ManyToManyField? - PullRequest
2 голосов
/ 20 января 2010

Итак, я создаю приложение 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 голосов
/ 21 января 2010

Я предлагаю вам использовать django-extensions, это даст вам комманду sqldiiff, которая работает лучше, чем Evolution, потому что существует проблема создания промежуточной таблицы между MagicType и MagicType.команду sqlall yourapp и выполнить непосредственно SQL-код создания новой промежуточной таблицы.Эволюция не для тебя: (

3 голосов
/ 20 января 2010

Объявлен ли MagicType в том же файле моделей (и ранее) Spell?

Работает ли magic_types = models.ManyToManyField('MagicType') (с указанием «MagicType»)?

...