私は多対多の関係を持つモデルを作成しようとしていますが、この関係には関係に関する情報が格納される特定の表もありますが、いくつかの問題に遭遇している。なぜ多対多関係が対称でないのですか
私はDjango docsのような異なるモデルと多対多の関係を作りようとしましたが、私のアプリケーションの他のいくつかの点でうまくいきました。しかし、今私はこのようなことをしようとしました:
他のアイテムによって作られ、他のアイテムを作るために使われるオブジェクト(Itemと呼ばれる)を表すモデルが必要です。たとえば、オブジェクトDoorは木とロックで作成されますが、DoorはHouseを作成するためにも使用されます。エラーが停止し、私の関係の引数
symmetrical=False
を追加し、そう
Many-to-many fields with intermediate tables must not be symmetrical.
:私は私のモデル
class Item(models.Model):
name = models.CharField(max_length=100)
items = models.ManyToManyField("self",through='IsMadeBy')
class IsMadeBy(models.Model):
itemResult = models.ForeignKey('Item', related_name='itemResult')
itemPart = models.ForeignKey('Item', related_name='itemPart')
amountUsed = models.PositiveIntegerField()
私は、エラーメッセージが出ていため、このような何かに思いました。
これが言われているように、私はこれが実際にどのように実際に機能するのか知りたい。 intanceについては、この文脈でデータベースレベルで対称的な意味は何ですか?今のところ私の脳は全体的な状況を見ることができず、実際には多対多の関係でこの対称関係の概念を学ぶことができるので、誰かがSQL文を使って例を挙げることができれば幸いです。 Djangoのドキュメントで