2016-01-17 57 views
0

我希望能夠有一個父類的外鍵,從而允許查詢子類。所有其他解決方案都是可怕的。 我試圖使這個(目標也是有子類我想涉及到的#父類):django模型繼承&FK,無法創建唯一索引

class Destination(PolymorphicModel) 

class Account(Destination) 

class Organization(Destination) 

class Person(Destination) 

class Transaction(models.Model) 
    destination = models.ForeignKey(Destination, verbose_name="Destination", null=True, blank=True, 
           related_name="CompletedTransaction_Destination_FK") 

我引用在其他地方目的地爲好。 這是當我嘗試遷移錯誤消息我得到:

psycopg2.IntegrityError:無法創建唯一索引「baseapp_organization_organization_destination_ptr_id_key」 詳細信息:按鍵(organization_destination_ptr_id)=(1)被複制。

我會喜歡它,如果我能把目標類

abstract = True 

但我不能有一個外鍵。我需要能夠選擇所有這些目的地,並且他們需要在數據庫中保持截然不同的真實模型。

我也嘗試過GenericRelations,但事實證明這是我之前說過的惡夢。

感覺就像我可以以某種方式解決這個錯誤,但任何幫助?

回答

0

解決方案,我猜這將適用於索引無法創建的其他錯誤,是擦除數據庫刪除所有的遷移。這是可以肯定的痛苦,但現在我可以這樣做:

destinations = Destination.objects.all() 

,它會給我所有的對象,根據django polymorphic