【发布时间】:2011-12-05 01:22:38
【问题描述】:
在我的 Django 应用程序中,我允许用户按类别创建电影集合。这使用 3 个模型来表示,Movie、Collection 和 Addition(Addition 模型存储电影、集合和用户实例)。所有三种模型的简化版本如下。
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 模型,因为我希望允许用户查看他们的朋友添加的电影。
我是否以最佳方式设置模型?任何建议/帮助将不胜感激。
谢谢!
【问题讨论】:
标签: django django-models django-queryset