Django - Haystack 查询序列化

Posted

技术标签:

【中文标题】Django - Haystack 查询序列化【英文标题】:Django - Haystack Query Serialization 【发布时间】:2011-05-22 05:27:25 【问题描述】:

我正在尝试序列化 HayStack SearchQuerySet

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

但它会抛出:

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

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

我也遇到过类似的问题。 使用了类似的东西并且它起作用了:

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

【讨论】:

以上是关于Django - Haystack 查询序列化的主要内容,如果未能解决你的问题,请参考以下文章

愚公系列2022年01月 Django商城项目 26-搜索引擎功能实现

如何反序列化 Django 中的序列化查询集?

如何在 Django 中序列化模型实例?

使用 Django 的 ORM 和 Django Rest Framework 序列化嵌套关系的查询集的正确方法?

如何在 Django 中将搜索查询结果转换为 Json 可序列化对象

如何从序列化器字段订购 django rest 框架查询集?