【发布时间】:2017-03-05 00:55:18
【问题描述】:
我正在尝试为我的网站制作一个简单的搜索系统。我正在使用python 3.6、Django 1.10.5 和Taggit 0.22.0。当我在搜索表单中输入标签时,我希望它查询数据库并返回标签或标题至少包含搜索到的任何标签的任何帖子。
例如:/search/?q=random%2C+stuff
会返回:
Post1 {Title: "How to be funny" Tags: "Random", "isn't", "Funny"}
Post2 {Title: "How to make Stuffed Turkey" Tags: "Cooking", "Thanksgiving"}
models.py
class Post(models.Model):
title = models.CharField(max_length=256)
tags = TaggableManager()
def __str__(self):
return self.title
views.py
def index(request):
query = request.GET.get('q')
if (query == None or not query):
tags = Post.tags.most_common()[:10]
return render(request, 'search/search.html', {'tags':tags})
else:
queryList = query.split(',')
results = # Query the database to get results
return render(request, 'search/results.html', {'query':query, 'results':results})
我一直在寻找在 django 中实现此查询的最佳方法
而且结果应该是大小写密集型的,将TAGGIT_CASE_INSENSITIVE = True 插入settings.py 对我不起作用。
【问题讨论】: