2016-11-21 15 views
0

ユーザーがプロジェクトのページからコメントを送信しようとしています(別のコメントルートではありません)。フラスコ - フォームの提出でデータベース項目が作成されない

このコードは__init__.pyフォルダにあります。私は各プロジェクトのルートを持っており、コメント機能のコードは@app.routeです。ただし、テンプレートでsubmitをクリックすると、何も起こりません。

@app.route("/projects/<int:project_id>/", methods=['GET', 'POST']) 
def project_detail(project_id): 
    project = db.session.query(Project).get(project_id) 
    all_comments = db.session.query(ProjectComment).filter_by(project_id=project_id) 
    if project is None: 
     abort(404) 
    return render_template("project_detail.html", project=project, all_comments=all_comments) 

@app.route("/projects/<int:project_id>/", methods=['GET', 'POST']) 
def comment(project_id): 
    project = db.session.query(Project).get(project_id) 
    all_comments = db.session.query(ProjectComment).filter_by(project_id=project_id) 
    if request.method == 'GET': 
     return render_template("project_detail.html", project=project, all_comments=all_comments) 
    elif request.method == 'POST': 
     now = datetime.datetime.now() 
     new_comment = ProjectComment(
      member_id = current_user.id, 
      project_id = project_id, 
      content = request.form.get("content"), 
      #time_created = now 
      ) 
     db.session.add(new_comment) 
     db.session.commit() 
     return render_template("project_detail.html", project=project, all_comments=all_comments) 

どうすればこの作品を作成できますか?

+0

'私はテンプレートを送信します。何も起こりません。 'ページがリロードされますか?そうでない場合、フォームは提出されていません。 – falloutcoder

+0

htmlフォームを表示できますか? – syntonym

答えて

1

あなたはではありませんは、ルート機能のコードを繰り返す必要があります。 1つのルートにして、メソッドが取得またはポストかどうかを確認することができます。

+0

私は問題は、HTMLフォームが提出されたときに最初のルート(送信を処理していない)しか見つからないため、送信を処理しているものを検索しないということです。 –

関連する問題