Django过滤查询

时间:2014-07-05 10:11:04

标签: python django django-models

我想从扫描的status = 'open'数据包中获取last 100的所有数据包的计数。

目前我进行顺序搜索,即

packet_obj = Packets.objects.all().oreder_by('-time')[:100] # getting the last 100 packets

for packets in packet_obj:
    if packets.status == 'open' : count += 1 # comparing the status

是否有直接的单一查询来计算此数?

1 个答案:

答案 0 :(得分:0)

单行你可以尝试这个但不是循环我认为不可能

packet_obj = Packets.objects.all.oreder_by('-time')[:100]
count=sum(1 for packets in packet_obj if packets.status == 'open')

另外,你可以尝试这个method