2014-09-03 65 views
0

我正在做一個Python/Flask中的小項目。我的數據庫模型由兩個表組成,分別表示發佈和評論。發佈表由發佈和評論表組成。該職位。帖子和評論鏈接..燒瓶在客戶端使用SQL查詢

我有兩個模板,feed.html和blogpost.html ..在feed.html將顯示帖子的標題列表,當點擊標題鏈接時,它會顯示通過blogpost.html完整的文章內容..

現在,在feed.html它會列出所有現在是精細的職位。但我想要實現的評論每篇文章都有一個號碼,它可以很容易地從服務器端查詢,但問題是 - 我傳遞所有職位的feed.html和渲染使用在客戶端循環每個職位頭銜。

user = User.query.filter_by(name = name).first() 
return render_template("feed.html", 
posts = Post.query.filter_by(user_id = user.id).order_by(Post.timestamp.desc()).all()) 

,並在feed.html,我作爲渲染,

{ % for post in posts %} 
    <a href="/feed/{{post.id}}" class="post-title">{{ post.title }}</a> 
     by <a href="/feed/{{ post.author.name }}">{{ post.author.name }}</a> 
     | {{ post.timestamp}} 
     | <a href="#"> TROUBLESOME PART </a> 
{% endfor %} 

我目前堅持在這裏..

我能得到的意見後已通過執行數量,

comments = Comment.query.filter_by(post_id = post.id).all() 
len(comments) 

但我沒有辦法做單個帖子時,整體上它是通過模板傳遞的查詢..

請在此幫助...

+0

剛剛澄清,神社模板是不是客戶端,它們是由服務器上的應用程序呈現。在執行:(「len個」是不確定的UndefinedError) – davidism 2014-09-03 14:20:08

回答

1

建立一個多到一個雙向關係CommentPost之間:

class Post(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 


class Comment(db.Model): 
    id = db.Column(db.Integer, primary_key=True 
    post_id = db.Column(db.Integer, db.ForeignKey(Post.id), nullable=False) 

    post = db.relationship(Post, backref='comments') 

現在,如果你有Post一個實例,你可以做post.comments來獲取該文章的評論。在Jinja模板中,使用post.comments|length來計算。

+0

嗨..感謝您的答覆..它工作正常..但是,我不能讓沒有使用的模板LEN(post.comments),得到錯誤的意見.. – avinoth 2014-09-03 14:11:15

+0

哇..非常感謝.... – avinoth 2014-09-03 14:21:05