2017-11-24 1 views
0

django-haystack을 사용하여 고정 된 검색 결과 집합을 표시하는 페이지를 만들려고합니다. haystack의 SearchView을 사용하여 검색하는 데 사용할 수있는 페이지가 이미 있으며 두 번째 페이지를 만들려면 기본적으로 특정 검색의 결과 (이 예에서는 Fruit을 포함하는 모든 문서 검색)를 표시해야합니다. 여기 django-haystack에 고정 검색어를 전달합니다.

내 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 검색어를 표시하기 위해 노력하고 있습니다 - 그러나이 될 것 같지 않습니다 올바른 방법에 대해 이동이

forms.py

class CustomSearchForm(SearchForm): 

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

나는 같은 특정 용어에 대한 검색 결과의 세트를 표시 할 수있는 방법 django-haystack을 사용하여 뷰의 기본값? URL을 ^fruit/에 표시하고 /q=Fruit으로 리디렉션하지 않고 URL에 Fruit 검색 결과가 직접 표시되도록 별도의보기를 만들고 싶습니다.

답변

0

내부 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}) 
관련 문제