我有一个SearchQuerySet类型的SearchQuerySet对象,我想转换成QuerySet:
= SearchQuerySet().dwithin('location',point_data,max_dist).distance('location',point_data).order_by(‘doctors’)
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顺序不同。
发布于 2016-01-12 11:59:56
在使用pk__in时不可能使用列表的顺序。
另一种方法是使用in_bulk来获取所有由id键指定的对象。然后使用一个列表理解来构造一个有序列表。
results = [r.pk for r in search_results]
objects = MyModel.objects.in_bulk(results)
objects_in_order = [obj[pk] for pk in objects]https://stackoverflow.com/questions/34742833
复制相似问题