【问题标题】:Search django-taggit tags搜索 django-taggit 标签
【发布时间】:2017-10-14 10:42:54
【问题描述】:

我需要帮助将 django-taggit 标签添加到我的搜索功能。我目前正在使用在这里找到的搜索功能 (Search page on the django)。有没有办法将 taggit 纳入其中?还是我最好使用像 Haystack 这样的包?这是我公司的一个简单的内部网络应用程序,大约有 3-4 个轻量级用户。

编辑

试图让这个问题更有针对性,而不是基于意见。以下是我目前正在使用的搜索功能。如何合并 django-taggit 表、taggit_tag(存储单词的位置)和 taggit_taggeditem(存储与主模型的关系)以提取这些记录,然后将它们组合 entry_query,同时只保留唯一的 PK?

def search(request):
found_entries = None
if ('q' in request.GET) and request.GET['q'].strip():
    # query_string is a separate function that simple cleans the search string that is passed in by the user
    query_string = request.GET['q']
    entry_query = get_query(query_string, ['company_name', 'stock_symbol', 'address'])
    found_entries = Company.objects.filter(entry_query).order_by('company_name')\
        .annotate(num_transcripts=Count('transcripts'))

return render_to_response('company_list.html', {'all_companies': found_entries})

【问题讨论】:

  • 嗨,菲利普。如目前所述,您的问题可能会吸引基于意见的答案,这在此处是题外话。尝试重构它以显示一个包含的、可重现的 sn-p,说明您现在正在做什么以及它有什么问题。
  • Paulo,感谢您的评论,我已经更新了上面的问题。

标签: django django-taggit


【解决方案1】:

上次我尝试将“标签”添加到 query_statement 中它不起作用,但现在它起作用了。回答这个问题以防其他人有类似的问题。

def search(request):
found_entries = None
if ('q' in request.GET) and request.GET['q'].strip():
    query_string = request.GET['q']
    entry_query = get_query(query_string, ['company_name', 'stock_symbol', 'address', 'tags'])
    found_entries = Company.objects.filter(entry_query).order_by('company_name')\
        .annotate(num_transcripts=Count('transcripts'))

return render_to_response('company_list.html', {'all_companies': found_entries})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    相关资源
    最近更新 更多