代码可以正常工作,但我感觉我正在错误地构建查询。
def search_results(request):
terms = request.GET['search_terms'].split()
vector = SearchVector('title', 'subtitle', 'header_image', 'header_image_caption', 'excerpt', 'body', 'tags__name',)
query = SearchQuery('')
for term in terms:
query = query | SearchQuery(term)
results = Article.objects.annotate(search=vector).filter(search=query).order_by('-pub_date',).distinct('pub_date',)
return render(request, 'etherblog/search_results.html', context={'articles': results, 'terms': terms})
我相信搜索引擎也会触发此错误:
File "/home/danjewett/webapps/ether/ether/etherblog/views.py" in search_results
102. terms = request.GET['search_terms'].split()
File "/home/danjewett/webapps/ether/etherenv/lib/python3.5/site-packages/django/utils/datastructures.py" in __getitem__
85. raise MultiValueDictKeyError(repr(key))
Exception Type: MultiValueDictKeyError at /search_results/
Exception Value: "'search_terms'"
Request information:
USER: AnonymousUser