【问题标题】:How to use annotate() with Haystack in Django?如何在 Django 中将 annotate() 与 Haystack 一起使用?
【发布时间】:2012-12-03 01:54:13
【问题描述】:

我有一个用 hatstack 搜索的函数,我需要获取 haystack 在数组中获取的每个对象的 cmets,我有这个:

def search(request):
if 'q' in request.GET and request.GET['q']:
    q = request.GET['q']
    results = SearchQuerySet().auto_query(q)
    things = []
    for r in results:
        things.append(r.object)
    return render_to_response('resultados.html',
        {'things': things, 'query': q}, context_instance=RequestContext(request))

如何将每个对象具有的 cmets 数量附加到结果中?

如果我添加注释,调试器会抛出我:SearchQuerySet 没有 'annotate' 属性

【问题讨论】:

    标签: django django-haystack


    【解决方案1】:

    SearchQuerySet 不是您熟悉的 ORM 查询集。它只会模仿它。注释对搜索引擎也没有意义。您需要将已经准备好的数据放入索引中。

    只需使用 ORM 进行另一个查询。

    【讨论】:

    • 好的,有没有办法在我进行搜索然后使用 ORM 进行查询后将一个查询集发送到模板?
    • 我的意思是将 sesrchqueryset 的每个结果与 ORM 查询 ser 检索给我的结果相关联?
    • 只需通过普通的 python dict 将两个集合以易于迭代的形式组合在一起。这种字典的形状将取决于使用它的模板代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    相关资源
    最近更新 更多