nik*_*ola 10 django django-queryset django-haystack
是否可以将Django Haystack搜索与"内置"QuerySet过滤操作相结合,特别是使用Q()实例和SearchQuerySet不支持的查找类型进行过滤?无论是哪种顺序:
haystack-searched -> queryset-filtered
Run Code Online (Sandbox Code Playgroud)
要么
queryset-filtered -> haystack-searched
Run Code Online (Sandbox Code Playgroud)
浏览Django Haystack文档没有给出任何指示如何执行此操作.
小智 10
您可以使用对象的PK基于Haystack搜索的结果过滤您的查询集:
def view(request):
if request.GET.get('q'):
from haystack import ModelSearchForm
form = ModelSearchForm(request.GET, searchqueryset=None, load_all=True)
searchqueryset = form.search()
results = [ r.pk for r in searchqueryset ]
docs = Document.objects.filter(pk__in=results)
# do something with your plain old regular queryset
return render_to_response('results.html', {'documents': docs});
Run Code Online (Sandbox Code Playgroud)
不确定这是如何扩展的,但对于小的结果集(在我的情况下为几百),这很好用.
| 归档时间: |
|
| 查看次数: |
8353 次 |
| 最近记录: |