靓仔      
    波澜   
  
时光荏苒,白驹过隙。且行且珍惜!!!   

django filter判断是否存在? 效率问题

result= Booking.objects.filter(xxxx,xxxx,xxxx)
count :获取提取的数据的个数。如果想要知道总共有多少条数据,那么建议使用 count ,而不是使用 len(articles) 这种。因为 count 在底层是使用 select count(*) 来实现的,这种方式比使用 len 函数更加的高效;

  first 和 last :返回 QuerySet 中的第一条和最后一条数据,如果原来数据集就是空,则返回Null;

  aggregate :使用聚合函数;

  exists :判断某个条件的数据是否存在。如果要判断某个条件的元素是否存在,那么建议使用 exists ,这比使用 count 或者直接判断QuerySet 更有效得多。

#方法一 .exists()
if result.exists():
    return Response({'已存在,请勿重复添加'},status=status.HTTP_400_BAD_REQUEST)
else:
 
  添加操作。
#方法二 .count()==0 
if result.count() == 0:
  添加操作。
#方法三 if result:
return Response({'已存在,请勿重复添加'},status=status.HTTP_400_BAD_REQUEST) else: 添加操作

总结: QuerySet.exists()
> QuerySet.count()==0 > QuerySet

 

posted @ 2020-05-09 10:50  可惜啊。  阅读(2291)  评论(0编辑  收藏  举报