猿问

如何把不符合要求的元素从查询结果中删除,但不影响数据库

我对数据库中存储的设备使用率进行了查询,对某一段时间内的设备使用率求了平均值,然后想把平均值处于某一范围内的设备取出来,或者说把不在范围内的剔除,但不能删除数据库中的数据,我想到的方法是根据设备平均使用率做判断,符合要求的放到一个列表里,但这样做之后,导致不能再像一开始那样就行filter了,因为已经变为列表,而不再是queryset了,不知哪位大神有解决办法?
慕森王
浏览 385回答 2
2回答

慕后森

按照你回复的这个语句node.utilization_set.filter(day__range=(date_list[0],date_list[-1])).aggregate(Avg('useage'))应该是要取Node表的数据,fromdjango.db.modelsimportAvgqs=Node.objects.filter(utilization__day__range=(date_list[0],date_list[-1]))qs=qs.annotate(useage_avg=Avg('utilization__useage'))qs=qs.filter(useage_avg__gt=0.5)#这里根据需求改

慕桂英546537

在数据库中加一列类似is_deleted,默认为0,把不在范围内的数据设为1,取值的时候只取is_deleted=0
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答