0
在我的Django应用程序中,我允许用户按类别创建电影集合。这是使用3个模型,Movie,Collection和Addition表示的(Addition模型存储电影,集合和用户实例)。以下是所有三种型号的简化版本。Django:基于相关字段的不同QuerySet
class Movie(models.Model):
name = models.CharField(max_length=64)
class Collection(models.Model):
name = models.CharField(max_length=64)
user = models.ForeignKey(User)
class Addition(models.Model):
user = models.ForeignKey(User)
movie = models.ForeignKey(Movie)
collection = models.ForeignKey(Collection)
因此,例如,用户可以创建一个名为“80年代的电影”集合,和电影“夺宝奇兵”添加到他们的收藏。
我的问题是:如何根据一组查询过滤器显示不同的电影列表?现在我收到了一些已添加到多个集合中的电影的重复内容。我通常会使用distinct()来获得不同的对象,但在这种情况下,我需要不同的电影而不是不同的添加,但我需要查询Addition模型,因为我想允许用户查看其朋友添加的电影。
我是否以最佳方式设置我的模型?任何意见/帮助将不胜感激。
谢谢!