我正在设计一个允许我跟踪电视节目的页面。我得到了DB模型,但有一件事我不确定。我想要它,以便如果用户观看了一集,他们可以只将该剧集标记为已观看,但我不知道它是否应该是ForeignKey / ManyToMany或由于某些用户可以拥有一集观看,其他人不要......:\
有没有人对此问题有任何建议?我正在考虑创建一个名为episodeWatched的新模型,但复制模型的效率并不高,只是为了这个......
答案 0 :(得分:0)
使用ManyToManyField,在User
模型或您的用户个人资料模型中添加
episodes=models.ManyToManyField(Episode)
当用户使用
观看剧集时添加剧集user.episodes.add(episode)
查找用户使用
观看的所有剧集Episode.objects.filter(user=user)
或反过来,即根据您要执行的操作向users
模型添加Episode
字段
Django文档列出了与文章和出版物类似的示例 - the following comments in the source
Django文档还解释了如何使用另一个模型来存储关于关系的额外字段,例如,您可以使用它来存储用户观看剧集的时间。
https://docs.djangoproject.com/en/1.10/topics/db/examples/many_to_many/