【发布时间】:2017-12-17 03:37:02
【问题描述】:
假设我有以下模型:
class ParentModel(models.Model):
name = models.CharField()
child = models.ForeignKey("ChildModel")
class ChildModel(models.Model):
name = models.CharField()
现在,给定 ParentModels 上的一些过滤器,我想检索所有子模型的列表。我试过了:
children = ParentModel.objects.filter(name__startswith='A').values_list('child', flat=True)
但是,这会返回 ChildModel id 的列表,而不是完整的对象。是否有一个查询集函数可以完成我正在尝试做的事情,或者我是否需要使用返回的 id 编写一个额外的过滤器查询?即 - 而不是:
children => [51L, 53L, 54L]
我想要:
children => [<ChildModel: ChildModel Object>, <ChildModel: ChildModel Object>, <ChildModel: ChildModel Object>]
【问题讨论】:
-
你能说明“ParentModels 上的一些过滤器”是什么意思吗?什么样的过滤器?
-
当然,它可能类似于
ParentModel.objects.filter(name__startswith='A')来检索名称以“A”开头的所有父母(然后获取这些父母的所有子模型)
标签: python django foreign-keys django-queryset