搜索django-taggit标签

时间:2017-05-15 15:13:45

标签: django django-taggit

我需要帮助将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})

1 个答案:

答案 0 :(得分:1)

上次我尝试在query_statement中添加'tags'时它不起作用,但现在确实如此。如果其他人有类似的问题,请回答这个问题。

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})