Фильтрация отношений "многие-ко-многим" по полю "Отношения" в Django

Я пытаюсь отфильтровать отношения "многие ко многим" с помощью некоторого поля через класс.

Цитата о документации Django, я объясню свою цель

class Person(models.Model):
      name = models.CharField(max_length=128)

      def __unicode__(self):
          return self.name

class Group(models.Model):
      name = models.CharField(max_length=128)
      members = models.ManyToManyField(Person, through='Membership')

      def __unicode__(self):
          return self.name

class Membership(models.Model):
      person = models.ForeignKey(Person)
      group = models.ForeignKey(Group)
      date_joined = models.DateField()
      invite_reason = models.CharField(max_length=64)

В этом примере моя цель состоит в том, чтобы отфильтровать отношения "многие-многие" и получить только Лицо, присоединившееся к некоторой Группе, начиная с определенной даты (date_joined field).

Возможно ли это?

Ответ 1

Вы можете запрос через отношения с ORM django (или в этом случае обратное отношение):

person = Person.objects.filter(membership__group=example_group, membership__date_joined__gte=example_date)