2010-10-27 66 views
0

我想設計一個可以關聯到Project模型,另一個X模型和其他任務模型的任務模型。顯而易見的選擇是一個外鍵,但我希望該Task模型的任何特定實例僅與這些模型類型中的一個相關聯,也就是說,如果任務模型與Project模型有關係,則它不能有關係與另一個任務模型,等等。什麼是最好的表達方式?謝謝。關於使用「獨佔」外鍵關係設計django模型的建議

+0

ForeignKey(unique = True)or OneToOneField()?對不起,如果我誤解了你的問題。 – 2010-10-27 16:24:04

+0

是的,但unique = True只會限制特定外鍵的唯一性,例如Project到任務或X模型的任務,但在所有外鍵模型之間並不唯一。一個到現場將是相同的事情,再加上我需要其他模型具有多個Task對象的能力,但單個Task對象應該只與另一個模型相關。 – user443850 2010-10-27 17:02:09

回答

0

看一看Generic relation。它允許您在多個模型上定義一個外鍵。這樣你的任務只與你的一個模型相關聯。

0

我所做的是從我的所有模型上的基類繼承,這些基類將與任務相關。任務模型使用unique = True指向ForeignKey上的基類,並且好像所有的子類都繼承了這個關係。謝謝。