用户订阅的数据库模型

时间:2014-01-11 02:34:47

标签: sql django

我正在尝试编写一个简单的Django应用程序,用户可以发布文章,而其他用户可以订阅文章。我处理了大部分数据库关系,但我正在努力解决的是主题类型,这是一个多选表单字段。

我有一个包含各种主题类型的“主题”表,在创建文章时,您可以选择与文章相关的多个主题,但我只希望在“文章”表中有1个条目。我如何建模这样,当我创建一篇文章时,它只是一个条目,但我仍然可以将它与作者可能选择的多个主题联系起来?

1 个答案:

答案 0 :(得分:1)

您正在寻找ManyToManyField,这是Django创建N-N表的方法。

class Topic(models.Model):
    name = ...

class Article(models.Model):
    content = ...
    topics = models.ManyToManyField(Topic)

在后台,Django将创建一个新表来链接Topic和Article,因为你在SQL中没有N-N表。