gpt4 book ai didi

python - 有没有办法将 SearchQuerySet 转换为 objects.filter 返回的类型? - Django

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:47 24 4
gpt4 key购买 nike

我需要将 SearchQuerySet() (django-haystack) 对象转换为 objects.filter 返回的类型。然后我需要能够过滤它。

例如,如果有一个带有 Restaurant 模型对象的 SearchQuerySet(),我需要能够这样做:

1) 将其转换为 objects.filter 返回的类型2) 能够过滤执行 1) 的结果,例如restaurant_locations= r.filter(location = "纽约")

我知道这听起来很傻,但我需要这个功能。任何见解表示赞赏

最佳答案

SearchQuerySet 一个QuerySet,并且与QuerySet完全一样,但它基于您的字段在索引中设置,而不是在模型中设置。

因此,如果您的模型有字段 foo 而您的索引没有,则您不能执行 SearchQuerySet().filter(foo='thing')

如果您不能将字段添加到索引,并且绝对必须对整个模型列表进行过滤,您可以像这样进行非常昂贵转换:

sqs = SearchQuerySet().get_some_results
qs = Mymodel.filter(id__in=[result.obj.pk for result in sqs])
qs = qs.filter(foo="thing")

但是,这遍历 SearchQuerySet 以获取所有主键,然后将整个列表传递回数据库以获取项目,然后您可以对其进行过滤。

关于python - 有没有办法将 SearchQuerySet 转换为 objects.filter 返回的类型? - Django ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30968676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com