我想有兩個外鍵相同的模式:如何在Django中使用同一模型的兩個外鍵?
class Test(models.model):
example1 = models.ForeignKey(Example)
example2 = models.ForeignKey(Example)
我得到這樣的錯誤:
訪問器領域的「例1」與相關領域 「Example.test_set」的衝突。將'related_name'參數 添加到'example1'的定義中。
我想有兩個外鍵相同的模式:如何在Django中使用同一模型的兩個外鍵?
class Test(models.model):
example1 = models.ForeignKey(Example)
example2 = models.ForeignKey(Example)
我得到這樣的錯誤:
訪問器領域的「例1」與相關領域 「Example.test_set」的衝突。將'related_name'參數 添加到'example1'的定義中。
Django使用一些Python的魔法來定義模型之間的關係,其中一些關係使用模型的名稱(這涉及到在「測試」中「 test__set'是來自於。)我猜想,發生了什麼事情是它試圖將「test__set」放入示例模型中兩次,一次爲您定義的每個外鍵。
錯誤消息建議嘗試:定義一個related_name參數(重寫其中一個'test_set's),它可以使用它來代替自動生成兩個碰撞名稱。
更多信息here
嘗試使用related_name
:
class Test(models.model):
example1 = models.ForeignKey('Example', related_name='example1')
example2 = models.ForeignKey('Example', related_name='example2')
我有兩種模式試圖做到這一點。第二個用這種方法可以正常工作:它必須將外鍵用於第一個模型。第一個模型不起作用。也許是因爲它指的是一個導入的模型。 有沒有人使用導入的模型進行了這項工作? – SpiRail 2013-01-31 00:26:00
就做什麼錯誤消息告訴你這樣做,如果你不確定是什麼意思,請查閱文檔related_name
。
此更多信息鏈接不再有效 – 2014-11-05 05:25:43