我試圖創建兩個通用(content_type)引用之間的映射表,一個用於「代理」,另一個用於「資源」。帶有兩個通用(content_type)外鍵的django模型?
所以我採取一貫的方式,我做一個普通的外鍵:
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
resource = generic.GenericForeignKey('content_type', 'object_id')
我嘗試做一個模型有兩個。
agent_content_type = models.ForeignKey(ContentType)
agent_object_id = models.PositiveIntegerField()
agent = generic.GenericForeignKey('agent_content_type', 'agent_object_id')
resource_content_type = models.ForeignKey(ContentType)
resource_object_id = models.PositiveIntegerField()
resource = generic.GenericForeignKey('resource_content_type', 'resource_object_id')
但這現在拋出了以下錯誤:
myapp.mymodel:訪問者現場 'resource_content_type' 衝突與 相關領域 'ContentType.mymodel_set'。將 related_name參數添加到 'resource_content_type'的 定義中。
和代理類似。
這是怎麼回事?我該怎麼做?
歡呼
菲爾
謝謝,這工作。但我希望有人能解釋爲什麼。或者說,爲什麼當我有兩個通用的外鍵而不是一個時出現歧義? – interstar 2009-05-28 11:12:53