我需要帮助将 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})
最佳答案
上次我尝试在 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})
关于django - 搜索 django-taggit 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43983013/