首页 > 解决方案 > Django Queryset 过滤器获取所有元素

问题描述

我的代码如下所示

从 Car 类中提取 tag-id

标签 = [UUID('1b2990eb-f625-4458-8878-1ab199e3e72b'), UUID('6e663259-9bf0-4e2d-8bf6-11be14218036')]

当我尝试以下代码时:

Car.objects.filter(uuid__in=tags).values_list('id',flat=True)[0] -> Output 11

Car.objects.filter(uuid__in=tags).values_list('id',flat=True).all()[0] -> Output :11
           
Car.objects.filter(uuid__in=tags).values_list('id',flat=True).all() -> Output : <QuerySet [11,12]>

        

我想要 [11,12] 格式的输出

标签: pythondjangodjango-queryset

解决方案


AQuerySet是可迭代的,当你迭代它时,你会得到项目(模型对象、元组、字典或标量值)。因此我们可以使用list(…)函数 [Python-doc]来收集元素:

list(Car.objects.filter(uuid__in=tags).values_list('id',flat=True))

推荐阅读