2014-06-26 64 views
0

我要過濾此類似的消息Django的查詢過濾器排除重複項目

messages = Message.objects.filter(who_id=logged_user) | Q(whose_id=logged_user) 

我的結果=

who : 1 , whose : 2 
who : 2 , whose : 1 
who : 1 , whose : 2 
who : 2 , whose : 1 
who : 1 , whose : 3 

,但我想這個結果

who : 1 , whose : 2 
who : 1 , whose : 3 

我的模型

class Message(models.Model): 
    uuid = UUIDField(auto=True) 
    who = models.ForeignKey(User,blank=True,related_name="who_%(class)s_objects") 
    whose = models.ForeignKey(User,blank=True,related_name="whose_%(class)s_objects") 
    message = models.TextField() 
    time = models.DateTimeField(auto_now=True) 

如何排除所有其他結果?

+0

在此處發佈您的模型類定義。 –

+0

@fish_ball問題用模型更新 –

+1

在過濾器後面添加distinct()。 –

回答

0

您的查詢

消息= Message.objects.filter(who_id = logged_user)| Q(= whose_id logged_user)

返回的所有消息的是:

  • 具有who_id = logged_user OR
  • 具有whose_id = logged_user。

從你的問題看來,你只需要的郵件是

  • 有who_id = logged_user

消息= Message.objects.filter(who_id = logged_user )

應該工作。

如果這不符合您的要求,請指定查詢的邏輯。