Django查询以获取共享相同外键字段的对象

时间:2011-11-23 09:59:06

标签: django

我有2个模特:会议和与会者

与会者有一个返回会议的外键字段

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')

我需要运行什么查询来获取会议记录,其中bill和ben是与会者?

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

3 个答案:

答案 0 :(得分:4)

也许您可以使用Q

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

答案 1 :(得分:2)

这个解决方案似乎有效但我不确定它是否是最好的方法

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

答案 2 :(得分:0)

怎么样

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

ben和bill是用户对象