我問了question earlier to programmatically identity foreignkey links.。編程識別Django的外鍵鏈接,但通過表省略
我發現下面的代碼翻出所有的一個一對多鏈接:
yourModel._meta.get_all_related_objects()
現在我發現,雖然唯一的問題是,它也包括要多到interemdiary表 - 多個鏈接。所以如果我有以下型號,
class Model_one(models.Model):
name = models.CharField("Name", max_length=30)
people = models.ManyToManyField('Model_two', blank=True, through='Association')
而不是沒有返回,代碼返回關聯。有沒有辦法指定「真正的」一對多鏈接或通過表格忽略?即使我必須從返回的yourModel._meta.get_all_related_objects()手動刪除它?
問另一種方法:如何識別/隔離實際上是「通過」表的鏈接?
我發現MyModel._meta.get_all_related_objects()只檢索一對多的關係。因此,雖然MyModel._meta.get_all_related_many_to_many_objects()返回不通過中間表的多對多鏈接,但將簡單的多對多與一對多比較沒有幫助。 MyModel._meta.get_all_related_objects()返回包括「through」表在內的所有一對多對象。我如何省略直通表? – 2012-02-17 02:00:24