我有一个Articles
模型,用户可以保存他们的文章,这些文章可能会在其中标记一些字词。
就像在Twitter上一样,我希望当用户点击这些主题标签时,它应该拉出所有包含点击主题标签的文章,但代码表现得很奇怪。
如果我有三个帖子中有#itertools
,我会在#itertools
被点击时看到其中的三个,但我只得到其中一个,有时我会变空,有时我会得到所有文章。如果我用#fetchThis hashtag发布另一篇文章并点击它,搜索似乎找不到匹配并返回空查询,即使刷新页面后也是如此。
我真的无法理解为什么会这样。 __iregex
和__icontains
都给出了相同的结果,很奇怪。
以下是代码:
def hash_tags(request, hash_tag):
tag = '#' + hash_tag
data = Articles.objects.filter(content__iregex=r"^[^.]*{0}*[[:>:]]".format(tag))
#---> or __icontains. The space added to tag is intentional.
#---> To avoid fetching articles with itertoolsss in them.
#tag += ' '
#data = Articles.objects.filter(content__icontains=tag)
if len(data):
fetched_articles = len(data)
else:
data = ["No data matches your search!"]
fetched_articles = 0
context = {'articles': articles, 'fetched_articles':fetched_articles}
return render(request, 'mysite/hashtags.html', context)
我做错了什么?我现在被困在这里好几天了。
我使用Django 1.6和MySQL