我想在我的一個模型中建立一些M2M關係。 Django要求我把related_name的參數放到一些字段中,然後我把它們放進去。但是,我現在對如何獲得相關項目感到困惑。這裏是我的模型簡化。Django M2M與「自我」通過int。表,如何獲得相關項目
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:英語不是我的主要語言,對不起,如果我的問題很難理解。
通過第一,你的意思是定義字段,或者別的什麼順序?例如,如果我先定義tto,然後定義tfrom,它會有所不同嗎? – yasar
準確。在模型初始化時檢索字段,並將其存儲在模型的Meta類的字段列表中(不要與元類混淆,這是另一個故事),那麼實例上的屬性是一個「描述符」,它使用該字段獲取數據。無論如何,將相關名稱放在事物上將有助於檢測這類問題,因此在任何情況下都可以檢查是否爲事物定義了正確的名稱。 – rewritten