Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django中按关系字段过滤多对多关系_Django_Filtering_Django Orm - Fatal编程技术网

Django中按关系字段过滤多对多关系

Django中按关系字段过滤多对多关系,django,filtering,django-orm,Django,Filtering,Django Orm,我正试图通过Class字段,通过some筛选多对多关系 引用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=12

我正试图通过Class字段,通过some筛选多对多关系

引用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\u joined field)开始加入某个组的

可能吗

您可以使用django ORM(或者在本例中为反向关系):

您也可以这样做:

person = example_group.members.filter(
    membership__date_joined__gte=example_date
)

这比我们不能执行的
Group.objects.filter(members\uu date\u joined=…)
有点棘手,所有查询都是从模型中的显式字段进行的。多谢各位
person = example_group.members.filter(
    membership__date_joined__gte=example_date
)