首页 > 解决方案 > 如何按父字段过滤子项

问题描述

例如,models.py:

class Guy(models.Model):
    name = models.CharField(max_length=30)


class Mom(models.Model):
    name = models.CharField(max_length=150, choices=MOTHER_NAMES, default=MOTHER_NAMES[0][0])
    guy = models.OneToOneField(Guy, on_delete=models.SET_NULL)

如何获取妈妈的名字是'Sophia'的家伙的查询集

标签: pythondjangodjango-modelsdjango-queryset

解决方案


您可以找到名为Sophia的母亲的validation_contract_id,您可以在此 validation_contract_ids 中找到 id 的孩子。

您可以使用以下查询:

Guy.objects.filter(id__in=Mom.objects.filter(name='Sophia').values_list('guy_id',flat=True))

推荐阅读