2016-05-01 4 views
0

Pythonで小さなブログシステムをフラスコにプログラミングし、CKEditで投稿を編集できる小さなテンプレートを作成しました。私はポストAを更新したい場合、私は編集をした後、私は実際にポストD.はポストDのすべての元の内容が上書きされ、この場合には、3件の投稿を編集します、レコードを更新するときのSQLAlchemyの奇妙な振る舞い

A, B, C, D, E 

:私は5件の記事を持っています編集されたAの内容とAの元の内容とは無関係です。

これは、最後の投稿を除くすべての投稿で発生します。私がDを編集したいのであれば、私は投稿Bを編集しますが、私はEを編集します。投稿は正常に編集されます。

私はそれがデータベースポインターに関するいくつかの問題だと思っていますが、その方法については分かりません。

更新コードはこれです:

def set_post(title, text, timestamp, page): 
    if page != '': #Update 
     data = Post.query.get(page) 
     data.title = title 
     data.text = text 
     db.session.commit() 
[..] 

私はすでに受信した「ページ」変数は(あるかの文の後にフラッシュ(ページ))正しいことを確認しました。

基礎となるデータベースエンジンはpage値は、主キーではないSQLLite 3

+3

実際にページ変数が実際にプライマリキーですか。モデル、行、そしてどのページが表示されますか? – univerio

+0

[編集]に[mcve]を含めるようにしてください。 – davidism

答えて

0

あります。主キーによる照会メソッド.get()別の列でクエリを実行するには、filter_by()を使用します。例:

Post.query.filter_by(page=page).first() 
+1

ねえ、これだった。ありがとう! –