首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不改变顺序的情况下将SearchQuerySet转换为QuerySet?

如何在不改变顺序的情况下将SearchQuerySet转换为QuerySet?
EN

Stack Overflow用户
提问于 2016-01-12 11:45:55
回答 1查看 389关注 0票数 0

我有一个SearchQuerySet类型的SearchQuerySet对象,我想转换成QuerySet:

= SearchQuerySet().dwithin('location',point_data,max_dist).distance('location',point_data).order_by(‘doctors’)

代码语言:javascript
复制
results = [ r.pk for r in doctors ]

address_key = Address.objects.all()

add_obj = address_key.filter(pk__in=results)

现在add_obj是QuerySet的类型。

add_obj queryset的顺序与doctors SearchQuerySet的pk顺序不同。

EN

回答 1

Stack Overflow用户

发布于 2016-01-12 11:59:56

在使用pk__in时不可能使用列表的顺序。

另一种方法是使用in_bulk来获取所有由id键指定的对象。然后使用一个列表理解来构造一个有序列表。

代码语言:javascript
复制
results = [r.pk for r in search_results]
objects = MyModel.objects.in_bulk(results)
objects_in_order = [obj[pk] for pk in objects]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34742833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档