Запрос Django для получения объектов, которые используют одно и то же поле иностранного ключа - PullRequest
1 голос
/ 23 ноября 2011

У меня есть 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')

Какой запрос мне нужно будет выполнить, чтобы получить протокол встречи, где присутствовали Билл и Бен?

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

Ответы [ 3 ]

4 голосов
/ 23 ноября 2011

Может быть, вы можете использовать Q :

from django.db.models import Q
meetings = Meeting.objects.filter(Q(attendee__user=ben) & Q(attendee__user=bill))
2 голосов
/ 23 ноября 2011

это решение похоже работает, хотя я не уверен, что это лучший способ сделать это

meeting = Meeting.objects.filter(attendee__user=bill)
meeting = meeting.filter(attendee__user=ben)
0 голосов
/ 23 ноября 2011

как насчет

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

, где ben и bill - объекты пользователя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...