Django链接多个表

时间:2015-04-14 14:04:43

标签: python django

我用django写博客。我有模型表文章,我想要'喜欢'我应该创建新表吗?(像这样)

class LikeArticleUser(models.Model):
class Meta:
    db_table = "likearticleuser"

user = models.ManyToManyField(User)
article_id = models.ManyToManyField(Article)

或者

class LikeArticleUser(models.Model):
class Meta:
    db_table = "likearticleuser"

user = models.ForeignKey(User)
article_id = models.ForeignKey(Article)

1 个答案:

答案 0 :(得分:1)

您有两种选择:

Article模型中使用M2M字段:

class Article(models.Model):
    ...
    liked_by = models.ManyToManyField(User)

或者自己创建中间表(这是我们问题中的第二个片段):

class LikeArticleUser(models.Model):
    article = models.ForeignKey(Article)
    user = models.ForeignKey(User)

两个选项的SQL表示都是相同的,因此您选择的选项只是一种品味。