我有Person
s和Proposal
s。現在我想存儲投票Proposals
。爲此,我將創建另一個提供「中介」表的課程。目標是鏈接Person
與Proposal
並將投票direction
(upvote或downvote)相關聯。代碼如下:Tell Django的模型將主鍵用作一組外鍵
class Persons(models.Model):
#code
class Proposal(models.Model):
#code
class Vote(models.Model):
"""A Person (who) votes up or down (direction) a Proposal (what)."""
who = models.ForeignKey(Person)
what = models.ForeignKey(Proposal)
direction = models.BooleanField() # true = upvote = vote in favor
我想投票的PrimaryKey是(誰,什麼)在一起。相反,Django創建了一個默認AUTO-INCREMENTED id
作爲PrimaryKey的表。 如何將ForeignKey(或一組ForeignKey)設置爲PrimaryKey?
我應該使用SQL命令來執行它嗎?也就是說,執行'syncdb'來創建數據庫,然後運行一組SQL命令來刪除默認的'id'鍵,並將其他兩個ForeignKeys作爲我的PrimaryKey。你怎麼看? – dialex 2013-03-15 19:41:11
你必須這麼做,因爲Django ORM無法爲你做到這一點。我的建議是使用SQLAlchemy而不是Django ORM。 – Brandon 2013-03-15 19:42:41
只有一個問題:Django是否支持將**一個** ForeignKey提升爲PrimaryKey?如果是這樣,怎麼樣? – dialex 2013-03-15 19:44:09