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'

それで、2つのモデル内で指定せずに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

これは多かれ少なかれ私がやった方法です。実際、これが機能しない理由に戸惑い、クリーンなDjango1.1環境で自分で試してみました。水泳で機能します。

このモデルを自分でクリーンな環境に置いて、何が得られるかを確認してみましたか?

于 2010-01-21T02:36:16.553 に答える