Gal*_*len 7 python django django-orm
我正在使用原始查询,我无法找到如何获得它返回的结果数.有办法吗?
编辑
.count()不起作用.它返回:'RawQuerySet'对象没有属性'count'
Jas*_*nko 14
您也可以先将其强制转换为列表以获取长度,如下所示:
results = ModelName.objects.raw("select * from modelnames_modelname")
len(list(results)) #returns length
Run Code Online (Sandbox Code Playgroud)
如果您想在模板中的RawQuerySet中拥有条目的长度或甚至存在,则需要这样做.只需像上面那样预先计算长度,并将其作为参数传递给模板.
Dan*_*man 11
我假设你在谈论raw()queryset方法.这会像其他任何一样返回一个查询集.所以当然你可以调用.count()它,就像你在任何其他ORM查询上一样.
编辑显示不检查时会发生什么.如您.raw()所知,返回一个没有count方法的RawQuerySet - 它也不支持len().获取长度的唯一方法是遍历查询集并计算它们:
sum(1 for result in results)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8766 次 |
| 最近记录: |