I am developing a blog application in flask. In html file to display posts there is option for commenting. But I am not able to retrieve the ORM object 'post' corrresponding to comment form while submitting form. My index.html file:
{% extends "base.html" %}{% block content %} <h1>Hi, {{ g.user.nickname }}!</h1> <form action="" method="post" name="post"> {{ form.hidden_tag() }} <table> <tr> <td>Say something:</td> </tr> <tr> <td>Title</td> <td>{{ form.title(size=30, maxlength=140) }}</td> <td> {% for error in form.title.errors %} <span style="color: red;">[{{ error }}]</span><br> {% endfor %} </td> </tr> <tr> <td>Content</td> <td>{{ form.post(size=30, maxlength=2000) }}</td> <td> {% for error in form.post.errors %} <span style="color: red;">[{{ error }}]</span><br> {% endfor %} </td> </tr> <tr> <td></td> <td><input type="submit" name="btn" value="Post!"></td> <td></td> </tr> </table> </form> {% for post in posts.items %} <div class="{{ post.id }}"> <div> {% include 'post.html' %} </div> <hr> <div class="row-fluid"> <div class="span11 offset1"> <div class="comments"> {% if post.comments %} <p> {% for comment in post.comments %} <p><i>{{ comment.name }}</i>: {{ comment.body }}</p> {% endfor %} </p> {% endif %} </div> </div> </div> <div> <form action="" method="post" name="post"> {{ form.hidden_tag() }} <input type="hidden" name="p_id" value="{{post}}"> <table> <tr> <td>Add a comment:</td> </tr> <tr> <td>Name</td> <td>{{ form.title(size=30, maxlength=40) }}</td> <td> {% for error in form.title.errors %} <span style="color: red;">[{{ error }}]</span><br> {% endfor %} </td> </tr> <tr> <td>Comment</td> <td>{{ form.post(size=30, maxlength=140) }}</td> <td> {% for error in form.post.errors %} <span style="color: red;">[{{ error }}]</span><br> {% endfor %} </td> </tr> <tr> <td></td> <td><input type="submit" name="btn" value="Comment"></td> <td></td> </tr> </table> </form> </div> </div> {% endfor %} {% if posts.has_prev %}<a href="{{ url_for('index', page=posts.prev_num) }}"><< Newer posts</a>{% else %}<< Newer posts{% endif %} | {% if posts.has_next %}<a href="{{ url_for('index', page=posts.next_num) }}">Older posts >></a>{% else %}Older posts >>{% endif %} {% endblock %} And view file have this: @app.route('/', methods=['GET', 'POST'])@app.route('/index', methods=['GET', 'POST'])@app.route('/index/<int:page>', methods=['GET', 'POST'])@login_requireddef index(page=1): form = PostnCommentForm() if form.validate_on_submit(): if request.form['btn'] == 'Post!': post = Post(title=form.title.data, body=form.post.data, timestamp=datetime.utcnow(), author=g.user) db.session.add(post) db.session.commit() flash('Your post is now live!') return redirect(url_for('index')) else: comment = Comment(name=form.title.data, body=form.post.data, timestamp=datetime.utcnow(), parent_post=form.p_id.data) db.session.add(comment) db.session.commit() flash('Your comment is now live!') return redirect(url_for('index')) posts = g.user.blog_posts().paginate(page, POSTS_PER_PAGE, False) return render_template('index.html', title='Home', form=form, posts=posts) Model: class Post(db.Model): id = db.Column(db.Integer, primary_key = True) title = db.Column(db.String(140)) body = db.Column(db.String(2000)) timestamp = db.Column(db.DateTime) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) comments = db.relationship('Comment', backref='parent_post', lazy='dynamic') def __repr__(self): return '<Post %r>' % (self.body) class Comment(db.Model): id = db.Column(db.Integer, primary_key = True) name = db.Column(db.String(40)) body = db.Column(db.String(140)) timestamp = db.Column(db.DateTime) post_id = db.Column(db.Integer, db.ForeignKey('post.id')) Form.py file: from flask.ext.wtf import Formfrom wtforms import StringField, BooleanField, TextAreaField, IntegerFieldfrom wtforms.validators import DataRequired, Lengthfrom app.models import User class PostnCommentForm(Form): post = StringField('post', validators=[DataRequired()]) title = StringField('title', validators=[DataRequired()]) p_id= IntegerField('p_id') -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.