0

我有以下查询:

Child.objects.filter(
    foreign_key_field__in=Parent.objects.filter(param=something))

视图死于:

invalid literal for int() with base 10: 'value of something'

在我看来,foreign_key_field期望是id某种类型的,我给它一个实际的价值。难道我做错了什么?这可能吗?

目标是避免遍历child_set父级以调用子级中的另一个查询生成方法,这会导致为每个返回的单个对象生成一个查询。相反,我想诱导 ORM 在一个查询中获取所有匹配的子节点,并像往常一样迭代它们。

4

1 回答 1

1

问题是你在做什么:

Child.objects.filter(parent__in=Parent.objects.filter(...))

或者

Child.objects.filter(parent_id__in=Parent.objects.filter(...))

第一个版本可以工作,第二个版本会给你“invalid literal for int() with base 10”错误。

于 2012-06-07T20:21:17.053 回答