在我的网站上,用户可以添加帖子,并搜索帖子。 我还让用户可以添加单词(兴趣),并将其显示在表单下方。 单词/兴趣应该是一个链接,显示点击的兴趣帖子匹配。我希望它的工作类似于搜索查询,以便显示所有包含该词(兴趣)的帖子。因此,例如,如果一个单词是蝙蝠侠并且被点击,它应该显示所有带有“蝙蝠侠”一词的帖子。我受到了搜索视图的启发,并尝试复制它,但它没有显示任何帖子?
它的视图功能不对。
views.py
def interest_posts(request):
interest = Interests.objects.all()
try:
q = request.GET.get('q', 'interest')
except:
q = False
if q:
k = q.split()
if len(k) >= 2:
posts = []
for i in k:
wall = Posts.objects.filter(post__icontains=i).distinct()
for word in wall:
if word not in posts:
posts.append(word)
else:
posts = Posts.objects.filter(post__icontains=q)
return render_to_response("posts/interests.html", locals(), context_instance=RequestContext(request))
interests.html
{% for post in posts %}
<div class='well' id='post_div'>
<h5>{{ post }}</h5>
</div>
{% endfor %}
答案 0 :(得分:0)
我还没有对此进行测试,但我认为如果你改变它会起作用:
{{ post }}
为:
{% for p in post %}
{{ p.title }} #or p.content, p.whatever
{% endfor %}
编辑:Alex发现了我的阅读错误。我没有看到你已经在interest.html的顶部迭代你的帖子,你当然不需要再次迭代。忽略额外的for循环,只需尝试将{{ post }}
更改为{{ post.something }}
- 抱歉造成混淆。