2011-11-23 24 views
1

我有2種型號的對象:會議和與會者Django的查詢來獲取其共享相同的外鍵字段

與會者有一個ForeignKey現場發回的會議

class Meeting(models.Model): 
    date = models.DateField() 
    venue = models.CharField(max_length=100, blank=True) 

class Attendee(models.Model): 
    meeting = models.ForeignKey(Meeting) 
    user = models.ForeignKey(User) 

我想要得到的會議,其中的列表2個用戶正在參加同一個會議?

所以說我有2個用戶帳單和本。

ben = User.objects.get(username='ben') 
    bill = User.objects.get(username='bill') 

我需要運行什麼樣的查詢來獲得會議記錄,其中的賬單和本是與會者?

meetings = Meeting.objects.filter(????) 
+0

刪除我的答案,想不到現在該做什麼。抱歉。 –

回答

2

這個解決方案似乎工作,雖然我不知道,如果它的最好的方式做到這一點

meeting = Meeting.objects.filter(attendee__user=bill) 
meeting = meeting.filter(attendee__user=ben) 
0

怎麼樣

meetings = Meeting.objects.filter(attendee__user__in = [ben, bill]) 

其中本和比爾是用戶對象

+0

嗯,來想一想吧,我認爲這個查詢不會區分,如果兩者都是會議的一部分,生病檢查更好的解決方案 – Paulo

+0

是的,只是檢查,它確實帶回會議,無論是法案還是本會都不參加 – John

4

也許你可以使用Q

from django.db.models import Q 
meetings = Meeting.objects.filter(Q(attendee__user=ben) & Q(attendee__user=bill))