得到正确的帖子显示

时间:2014-04-16 16:33:15

标签: python django django-views

在我的网站上,用户可以添加帖子,并搜索帖子。 我还让用户可以添加单词(兴趣),并将其显示在表单下方。 单词/兴趣应该是一个链接,显示点击的兴趣帖子匹配。我希望它的工作类似于搜索查询,以便显示所有包含该词(兴趣)的帖子。因此,例如,如果一个单词是蝙蝠侠并且被点击,它应该显示所有带有“蝙蝠侠”一词的帖子。我受到了搜索视图的启发,并尝试复制它,但它没有显示任何帖子?

它的视图功能不对。

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

1 个答案:

答案 0 :(得分:0)

我还没有对此进行测试,但我认为如果你改变它会起作用:

{{ post }}

为:

{% for p in post %}
    {{ p.title }}     #or p.content, p.whatever
{% endfor %}

编辑:Alex发现了我的阅读错误。我没有看到你已经在interest.html的顶部迭代你的帖子,你当然不需要再次迭代。忽略额外的for循环,只需尝试将{{ post }}更改为{{ post.something }} - 抱歉造成混淆。