python - 如何在 Django 中获取查询集的所有子项?

标签 python django django-queryset

我有一个查询集结果,比方说动物,它有一个动物列表。有动物的子类别,我想获取所有子类别。即

对于单个动物,我可以使用有效的 animal.categories。现在,我想以某种方式做到这一点:

categories = animals.categories

其中 animals 是查询集。我怎样才能做到这一点?

最佳答案

没有办法不遍历查询集,但你可以使用 prefetch_related加快速度:

all_animals = Animals.objects.prefetch_related('categories')
categories = [animal.categories.all() for animal in all_animals]

关于python - 如何在 Django 中获取查询集的所有子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12141367/

相关文章:

python - 如何到达嵌套列表中的特定内部列表

python - Pyspark (spark 1.6.x) 导入错误 : cannot import name Py4JJavaError

Django Apache 重定向问题

python - Django 重定向到自定义 URL

python - Django 更新该行(如果存在)

python - 我可以在文本小部件内创建跨多行的 Tkinter Canvas 吗?

使用生成器的Pythonic树枚举器方法

Python/Django 脚本因 MySQL 死锁而崩溃

django - 名称错误 : name 'QuerySet' is not defined

Django prefetch_相关查询未按要求工作,需要进行故障排除