0
我正试图编写一个简单的Django应用程序,用户可以发布文章,其他用户可以订阅文章。我处理了大部分数据库关系,但是我正在努力的是针对主题类型,这是一个多选表单字段。用户订阅的数据库模型
我有一个“主题”表与各种主题类型,创建文章时,您可以选择多个主题文章相关,但我只希望有1条目在“文章”表中。我将如何建模,这样当我创建一篇文章时,它只是一个条目,但我仍然可以将其与作者可能选择的多个主题相关联?
我正试图编写一个简单的Django应用程序,用户可以发布文章,其他用户可以订阅文章。我处理了大部分数据库关系,但是我正在努力的是针对主题类型,这是一个多选表单字段。用户订阅的数据库模型
我有一个“主题”表与各种主题类型,创建文章时,您可以选择多个主题文章相关,但我只希望有1条目在“文章”表中。我将如何建模,这样当我创建一篇文章时,它只是一个条目,但我仍然可以将其与作者可能选择的多个主题相关联?
您正在寻找ManyToManyField,这是Django创建N-N表格的方式。
class Topic(models.Model):
name = ...
class Article(models.Model):
content = ...
topics = models.ManyToManyField(Topic)
在后台,Django会创建一个新表链接主题和文章,因为你不能有一个N-N表中的SQL。
谢谢。它没有在文章表中添加额外的列。它是否应该用关键文章的主键? – user3184033
不,你不应该有任何SQL的列表。正如我写的,在后台,它会创建一个你不会看到管理N-N关系的新表。这只是一个链接表。您可以阅读此[SO帖子](http://stackoverflow.com/questions/183742/how-do-you-deal-with-m-n-relationships-in-a-relational-database)以获取更多信息。 – Nil