2024-04-27 04:12:40 发布
网友
我有一个这样的查询集
QS = SomeModel.objects.filter(some_filter='filter_value')
我需要从中随机选取n个元素,所以我生成了一个由n个介于0到QS长度之间的随机数组成的列表,放入一个列表变量idx\u list中。你知道吗
现在,我可以在idx\u列表中循环,一次从QS中提取一个元素,但是,我可以不循环地在一行中完成吗?你知道吗
如果要从db和中提取项,可以使用^{}随机选择对象,然后生成id列表
您只能使用values_list()以随机顺序获取id
values_list()
idx_list = SomeModel.objects.filter(some_filter='filter_value').order_by('?').values_list('id', flat=True)[:x]
或者您可以获取查询集:
QS = SomeModel.objects.filter(some_filter='filter_value').order_by('?')
然后,根据需要切割任意多个项目:
# Get id's of random x elements idx_list = map(lambda item: item.id, list(QS[0:x]))
如果要从db和中提取项,可以使用^{} 随机选择对象,然后生成id列表
您只能使用
values_list()
以随机顺序获取id或者您可以获取查询集:
然后,根据需要切割任意多个项目:
相关问题 更多 >
编程相关推荐