我有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