简体   繁体   English

Django SearchVector

[英]Django SearchVector

Django SearchVector is giving ok results in command line but it is not working on my localhost:8000. Django SearchVector 在命令行中给出了正常的结果,但它在我的 localhost:8000 上不起作用。 Here's how I put it.我是这样说的。

def post_search(request):

     form = SearchForm()
     query = None
     results = []

     if 'query' in request.GET:
        form = SearchForm(request.GET)
        if form.is_valid():
            query= form.cleaned_data['query']
            results = Post.objects.annotate(search=SearchVector('title', 'body', 
           'slug')).filter(search='query')

     context = {
        'form' : form,
        'query' : query,
        'results' : results }

     return render(request, 'blog/search.html', context)

You need to pass the query , not the 'query' string:您需要传递query ,而不是'query'字符串:

def post_search(request):
    form = SearchForm()
    query = None
    results = []
    
    if 'query' in request.GET:
        form = SearchForm(request.GET)
        if form.is_valid():
            query = form.cleaned_data['query']
            results = Post.objects.annotate(
                search=SearchVector('title', 'body', 'slug')
            ).filter(search=query)
            # query variable ↑

    context = {
        'form' : form,
        'query' : query,
        'results' : results
    }
    return render(request, 'blog/search.html', context)

Have you ever tried single filter quotes?你试过单过滤引号吗? Try it in this way filter(search=query) .以这种方式尝试filter(search=query)

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

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