带有列表和每个匹配项有5个实例的Django objects.filter

问题描述 投票:1回答:1

我有一个具有属性模型的属性模型,该模型具有等级属性。财产模型具有成千上万个具有不同等级的财产。我需要根据以下条件从数据库检索属性,

1)如果我的rating_list = [5、4、1、2、3,未分级],我知道我可以通过执行此操作轻松实现

Property.objects.filter(rating__in=rating_list)[:50]

问题是,由于我有成千上万个具有不同等级的属性,因此上述查询有可能返回仅5个等级的50个属性,而过滤器中的每个等级都需要10个属性。

2)另一个要求是,我希望返回的结果与rating_list中给出的顺序完全相同。例如,查询集应包含等级5的前10个属性,等级4的下10个属性,以及等级1的下一个属性,依此类推。]

3)由于我们具有成千上万的属性,因此我们希望在单个查询中完成此操作,而不是在单个查询中进行。

是否有实现此目标的解决方案,或者可能是可能的解决方案。

我有一个具有属性模型的属性模型,该模型具有等级属性。财产模型具有成千上万个具有不同等级的财产。我需要基于...

python django python-3.x django-models django-orm
1个回答
2
投票

您可以对查询集进行并集,并限制该并集,例如:

© www.soinside.com 2019 - 2024. All rights reserved.