2017-07-04 39 views
0

我有兩個型號如何篩選查詢集與排除和ForeignKey的

class Entry(models.Model): 
    properties = here 

class ReadedEntries(models.Model): 
    entry = models.ForeignKey(Entry, on_delete=models.CASCADE) 
    user = models.ForeignKey(User, on_delete=models.CASCADE) 

我怎樣才能從用戶無readed條目?

我嘗試:

not_looked_videos = Entry.objects.exclude(ReadedEntries.objects.filter(user=request.user)) 

,但我得到:

ValueError: need more than 0 values to unpack 

回答

1

嘗試使用ISNULL讓所有enries設置空ReadedEtries:

Entry.objects.filter(readedentries__isnull=True) 

或排除只readed當前條目: 用戶

Entry.objects.exclude(readedentries__user=request.user)) 
+0

我嘗試'readedentries__isnull = False'並且工作。用戶也可以使用readedentries__user = request.user –

1

1,過濾〜Q(id__in = IDS)

其中IDS = ReadedEntries.objects.filter(用戶= request.user).values_list( 'ID',平=真)

2.我仍在繼續完成它...