Django - Haystack 查询序列化

发布于 2024-10-06 07:44:07 字数 302 浏览 0 评论 0原文

我正在尝试序列化 HayStack SearchQuerySet

from django.core import serializers
serializers.serialize("json", SearchQuerySet().filter(content=request.GET['q']))

但它会抛出:

“SearchQuery”对象没有属性“_build_query”

我该如何解决这个问题?

I'm trying to serialize a HayStack SearchQuerySet:

from django.core import serializers
serializers.serialize("json", SearchQuerySet().filter(content=request.GET['q']))

but it throws:

'SearchQuery' object has no attribute '_build_query'

How can I fix this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

多彩岁月 2024-10-13 07:44:07

我不建议为每个结果调用“对象”,因为它会影响数据库并超出搜索性能的目的。相反,请考虑调用可与 json 转储一起使用的 get_stored_fields 方法:

import simplejson as json
data = map(lambda x: x.get_stored_fields(), search_result)
json.dumps(data)

I don't recommend call 'object' per result as it would hit to database and beat purpose of search performance. Instead consider calling get_stored_fields method which can be used with json dumps:

import simplejson as json
data = map(lambda x: x.get_stored_fields(), search_result)
json.dumps(data)
倾听心声的旋律 2024-10-13 07:44:07

我也遇到过类似的问题。
使用类似的东西并且它有效:

serializers.serialize("json", [x.object for x in queryset]

I had faced a similar problem.
used something like this and it worked:

serializers.serialize("json", [x.object for x in queryset]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文