告诉Django的模型使用一组外键作为主键

时间:2013-03-15 19:26:53

标签: django django-models foreign-keys primary-key

我有PersonProposal s。现在我想在Person's上存储Proposals票。为此,我将创建另一个提供“中间”表的类。目标是将PersonProposal相关联并关联投票direction(upvote或downvote)。代码如下:

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(或一组ForeignKeys)设置为PrimaryKey?

3 个答案:

答案 0 :(得分:2)

不幸的是,您可能会因使用 SQLAlchemy 而陷入困境,因为标准的ORM无法做到这一点。

答案 1 :(得分:2)

我也有类似的问题,我可以通过使用unique_together meta(在你的情况下在类投票下)解决它。在

了解更多有关unique_together的信息

https://docs.djangoproject.com/en/dev/ref/models/options/

答案 2 :(得分:1)