向Djangohays传递固定查询项

2024-09-29 17:17:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个页面,显示一个固定的搜索结果集使用django干草堆。我已经有了一个页面,可以使用haystack的SearchView进行搜索,并希望生成第二个页面,默认情况下显示特定搜索的结果——在本例中,搜索包含Fruit的所有文档。你知道吗

这是我的网址.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搜索词——但是,这似乎不是正确的方法

你知道吗表单.py你知道吗

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。你知道吗


Tags: djangofromimport视图urlgetcustom页面
1条回答
网友
1楼 · 发布于 2024-09-29 17:17:07

一个普通的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})

相关问题 更多 >

    热门问题