繁体   English   中英

将固定的查询词传递给django-haystack

[英]Passing a fixed query term to django-haystack

我正在寻找一个使用django-haystack显示固定的搜索结果集的页面。 我已经有一个页面可用于使用haystack的SearchView进行搜索,并且想要创建第二个页面,该页面默认显示特定搜索的结果-在此示例中,搜索包含Fruit所有文档。

这是我的urls.py:

from haystack.views import SearchView
from django.conf.urls import url
import haystack

from .search_Queries import custom_query
from .forms import CustomSearchForm


urlpatterns = [
     url(r'^fruit/', SearchView(form_class=CustomSearchForm, 
            searchqueryset=custom_query)),
     url(r'^$', SearchView(form_class=haystack.forms.SearchForm,
                                         searchqueryset=custom_query),
     ]

我试图通过覆盖表单中的get_queryset方法来使视图显示初始Fruit搜索项-但是,这似乎并不是正确的解决方法

表格

class CustomSearchForm(SearchForm):

    def get_queryset(self):
        queryset = super(CustomSearchForm, self).get_queryset()
        queryset = queryset.auto_query('Fruit')
        return queryset

如何使用django-haystack在视图中显示特定术语的一组搜索结果作为默认值? 我想做一个单独的视图,以便我的^fruit/ URL直接显示Fruit搜索结果,而不是重定向到/q=Fruit

带有SearchQuerySet功能的普通Django视图SearchQuerySet

url(r'^myquery/$', views.custom_query),

和里面views.py

from haystack.query import SearchQuerySet
from django.http JsonResponse

def custom_query(request):
    sqs = SearchQuerySet().auto_query('fruit').load_all()
    # and do whatever you want with the sqs
    return JsonResponse({'result': sqs[0].object.pk})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM