【问题标题】:"OperationalError, unrecognized token" while searching搜索时出现“OperationalError,无法识别的令牌”
【发布时间】:2018-04-12 13:23:55
【问题描述】:

我在进行任何搜索查询时遇到此错误:

OperationalError at /search/
unrecognized token: "@"

我的看法:

class Search(ListView):

    model = Opinion
    template_name = 'home/search.html'
    context_object_name = 'search_results'
    paginate_by = 10

    def get_queryset(self):
        qs = Opinion.objects.all()

        keywords = self.request.GET.get('q')
        if keywords:
            query = SearchQuery(keywords)
            vector = SearchVector('text')
            qs = qs.annotate(search=vector).filter(search=query)
            qs = qs.annotate(rank=SearchRank(vector, query)).order_by('-rank')

        return qs

我的搜索表单:

<form class="navbar-form navbar-left" role="search" method="get" action="{% url 'home:search' %}">
    <div class="form-group">
        <input type="text" class="form-control" name="q" value="">
    </div>
    <button type="submit" class="btn btn-default">Search</button>
</form>

欢迎和非常感谢任何建议或反馈。

谢谢。

【问题讨论】:

    标签: django search full-text-search django-queryset


    【解决方案1】:

    确保您使用的是 PostgreSQL 数据库。

    当我尝试搜索本地数据库 SQLite 时遇到了这个错误。

    【讨论】:

    • 虽然很短,但可能是一个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多