我有Person
和Proposal
s。现在我想在Person's
上存储Proposals
票。为此,我将创建另一个提供“中间”表的类。目标是将Person
与Proposal
相关联并关联投票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?
答案 0 :(得分:2)
不幸的是,您可能会因使用 SQLAlchemy 而陷入困境,因为标准的ORM无法做到这一点。
答案 1 :(得分:2)
我也有类似的问题,我可以通过使用unique_together meta(在你的情况下在类投票下)解决它。在
了解更多有关unique_together的信息答案 2 :(得分:1)
Django ORM不支持复合主键:https://code.djangoproject.com/wiki/MultipleColumnPrimaryKeys