私は自分のモデルの中にいくつかのM2M関係を確立しようとしています。 Djangoはfieldsのいくつかにrelated_name引数を付けるように私に依頼しました。しかし、私は今、関連項目を取得する方法と混同しています。ここで私のモデルは単純化されています。intを介して "self"を持つDjango M2M。テーブル、関連アイテムの入手方法
class Post(models.Model):
# other fields
relevancy = models.ManyToManyField("self",through="Traffic",symmetrical=False,related_name="relevant",blank=True)
#some method definitions
class Traffic(models.Model):
tfrom = models.ForeignKey(Post,related_name="tfrom")
tto = models.ForeignKey(Post,related_name="tto")
count = models.PositiveIntegerField(default=0)
これは、ユーザーの傾向を分析し、他のユーザーのツールに示唆するものです。私が混乱している部分は、問題の投稿に関連する投稿を得る部分です。たとえば、投稿を選択すると、その投稿からのトラフィックを作成した投稿の集合、またはその投稿などにトラフィッキングされた投稿の集合を取得するにはどうすればいいですか?これは前に投稿したrelated questionです。
PS:英語は私の主な言語ではありません。ご質問がわかりにくい場合は、ごめんなさい。
にあるすべての
Post
のインスタンスを取得している、あなたはフィールド、または何か他のものを定義するの順序を意味するのですか?たとえば、最初にttoを、2番目にtを定義すると、違いが生じますか? – yasar正確に。フィールドはモデルの初期化時に取得され、モデルのメタクラスのフィールドリストに格納されます(メタクラスと混同しないでください)。インスタンスの属性は、フィールドを使用してデータを取得する「ディスクリプタ」です。いずれにしても、関連する名前を物に付けることは、この種の問題を検出するのに役立ちます。したがって、すべての場合に、物事の正しい名前を定義しているかどうかを確認することができます。 – rewritten