Django - Haystack查询序列化

8 投票
2 回答
2405 浏览
提问于 2025-04-16 08:14

我正在尝试把一个 HayStack 的 SearchQuerySet 转换成可以存储的格式:

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

但是它报错了:

'SearchQuery' 对象没有 '_build_query' 这个属性

我该怎么解决这个问题呢?

2 个回答

9

我不建议直接通过结果调用“对象”,因为这样会频繁访问数据库,反而影响搜索的性能。你可以考虑使用get_stored_fields这个方法,它可以和json数据一起使用:

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

我之前也遇到过类似的问题。
我用了类似下面的代码,结果成功了:

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

撰写回答