【问题标题】:How to select parents with specific set of children (many-to-one) django?如何选择具有特定孩子(多对一)django的父母?
【发布时间】:2018-04-08 19:40:12
【问题描述】:

在 django 中的多对一关系如下:

class Parent(model.Model):
    name = models.CharField(max_length=50)

class Child(model.Model):
    parent = models.ForeignKey(Parent)
    name = models.CharField(max_length=50)
    hobby = models.CharField(max_length=50)
    age = models.IntegerField(default=0)

如果我有 N 个不同的子记录标准,例如让 N=2 和标准是:

Child__name='Bob'
Child__hobby='Skiing'
Child__age__gt=16

Child__name='Billy'
Child__hobby__icontains='read'
Child__age__gte='21'

如果父母没有至少一个孩子符合上述各项条件,我该如何过滤?

我希望以这样一种方式编写此内容,以便我可以一次应用一个过滤器,以便我可以选择检查哪些父母未满足哪些标准。

【问题讨论】:

    标签: django django-models django-queryset one-to-many


    【解决方案1】:

    如果我理解,您需要对 Children 模型进行过滤并获取结果查询集的父母:

    qs = Children.objects.filter(
        name='billy',
        age__gte=21
    ).values('parent')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 2014-12-19
      • 2019-06-10
      • 2012-12-07
      • 1970-01-01
      相关资源
      最近更新 更多