was*_*lli 4 python django django-queryset
我有一个查询集结果,比如动物,它有一个动物列表.有动物的子类别,我想得到所有的子类别.即
对于单一动物,我可以使用animal.categories哪种作品.现在,我想以某种方式这样做:
categories = animals.categories
Run Code Online (Sandbox Code Playgroud)
动物是查询集.我怎样才能做到这一点?
没有迭代查询集是没有办法的,但您可以使用它prefetch_related来加快速度:
all_animals = Animals.objects.prefetch_related('categories')
categories = [animal.categories.all() for animal in all_animals]
Run Code Online (Sandbox Code Playgroud)
有两种选择:
1)完全按照你的问题,你只能这样做:
categories=[]
for aninmal in animals:
categories.extend(animal.categories.all())
Run Code Online (Sandbox Code Playgroud)
2)但是,我会运行一个类似的类别的新查询(我不知道你的确切数据模型和措辞,但我认为你明白了)
categories=Category.filter(animals__in=animals).all()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8071 次 |
| 最近记录: |