Ошибка при добавлении ManyToManyField в Django - PullRequest
3 голосов
/ 21 января 2010

Хорошо, поэтому я недавно опубликовал вопрос об ошибке при добавлении 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)

но как бы я продолжил использовать это в ORM Джанго ?

Помощь была бы очень признательна. Спасибо!

Ответы [ 2 ]

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

То же самое, я отвечу на другой ваш вопрос Является ли причиной, по которой я не могу добавить ManyToManyField? В основном эта ошибка связана с тем, что ваш код в моделях (ORM) изменяется, а база данных - нет, и django -evolution не решает многих проблем с изменениями в базе данных, я предлагаю вам поискать django-extensions (http://code.google.com/p/django-command-extensions/) и команду sqldiff, но посмотрите мой другой ответ

1 голос
/ 21 января 2010

Это более или менее так, как я бы это сделал. На самом деле, я был озадачен, почему это не сработало, и попробовал сам в чистой среде Django 1.1 - она ​​работает плавно.

Вы сами пытались поместить эту модель в чистую среду и посмотреть, что вы получите?

...