【问题标题】:Django link multiple tablesDjango链接多个表
【发布时间】:2015-06-20 04:32:56
【问题描述】:

我用 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)

【问题讨论】:

    标签: python django


    【解决方案1】:

    你有两个选择:

    Article 模型中使用 M2M 字段:

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

    或者自己创建中间表(也就是我们问题中的第二个sn-p):

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

    两个选项的 SQL 表示形式相同,因此您选择哪个选项是个人喜好问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-27
      • 2023-03-22
      • 1970-01-01
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多