我正在尝试编写一个简单的Django应用程序,用户可以发布文章,而其他用户可以订阅文章。我处理了大部分数据库关系,但我正在努力解决的是主题类型,这是一个多选表单字段。
我有一个包含各种主题类型的“主题”表,在创建文章时,您可以选择与文章相关的多个主题,但我只希望在“文章”表中有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表。