2014-04-16 125 views
0

在我的網站上,用戶可以添加帖子,並搜索帖子。 我也剛剛讓用戶添加單詞(興趣),他們得到顯示在窗體下。 單詞/興趣應該是一個鏈接,顯示點擊興趣發佈匹配。我希望它的工作方式與搜索查詢類似,因此它會顯示所有包含該單詞(興趣)的帖子。因此,例如,如果一個單詞是蝙蝠俠,並點擊它,它應該顯示所有與'蝙蝠俠'這個詞的帖子。我受到搜索視圖的啓發,並試圖複製它,但它不顯示任何帖子?獲取顯示的帖子

它的視圖功能是不正確的。

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

我沒有測試過這一點,但我認爲,如果你改變它會工作:

{{ post }}

至:

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

編輯:Alex發現了我的錯誤。我沒有看到你已經在interests.html頂部迭代了你的帖子,你當然不需要第二次迭代。忽略額外的循環,只是嘗試更改{{ post }}{{ post.something }} - 抱歉的混淆。

+0

我可能是錯的,但是你確定要迭代'post'嗎?他已經在'posts'上面迭代了,所以'post'是'posts'中的一個項目。 – Alex

+0

我完全錯過了interests.html文件頂部的{%post for posts%}。感謝您指出了這一點。我認爲這只是告訴模板顯示'post'的哪個方面,而不是將整個對象粘貼到模板中。我會相應地編輯我的答案。 – souldeux

+0

太好了。謝謝,@souldeux。 – Alex