我有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(????)
答案 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是用户对象