我有以下查询:
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在一个查询中抓取所有匹配的子节点,并正常迭代它们。
答案 0 :(得分:1)
问题是你在做什么:
Child.objects.filter(parent__in=Parent.objects.filter(...))
或
Child.objects.filter(parent_id__in=Parent.objects.filter(...))
第一个版本可以使用,第二个版本会给你“带有基数10的int()的无效文字”错误。