【发布时间】:2020-09-05 09:01:58
【问题描述】:
我有一个场景,我有一个属性模型,该模型具有评级属性。属性模型具有数千个具有不同评级的属性。我需要根据以下条件从 db 中检索属性,
1) 如果我有一个 rating_list = [5, 4, 1, 2, 3, unrated] 我知道我可以通过这样做轻松实现它
Property.objects.filter(rating__in=rating_list)[:50]
问题在于,由于我有数千个不同评级的属性,因此上述查询可能会返回 50 个属性只有 5 个评级,而过滤器中的每个评级需要 10 个属性。
2) 另一个要求是我希望返回的结果与 rating_list 中给出的顺序完全相同。 例如,查询集应该包含前 10 个等级为 5 的属性,接下来的 10 个属性为等级 4,下一个等级为 1,依此类推。
3) 由于我们有数以千计的属性,我们希望在单个查询中而不是在多个查询中完成。
是否有任何解决方案可以实现这一目标或可能的解决方案。
【问题讨论】:
-
可以分享一下相关模型吗?
-
@WillemVanOnsem 只有一个具有评级属性的属性模型,我想使用该评级属性进行过滤。上面提到了过滤器的标准。
标签: python django python-3.x django-models django-orm