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模型,因爲我想允許用戶查看其朋友添加的電影。
我是否以最佳方式設置我的模型?任何意見/幫助將不勝感激。
謝謝!