2017-01-17 4 views
0

私はMongoAlchemyの助けが必要です。私はPython、フラスコ、Mongo DMとMongo Alchemy(オブジェクトドキュメントマッパー)を使ってWebアプリケーションを作成しようとしています。既存のドキュメントを更新するのには苦労しています。既存の文書を更新する:Mongo Alchemy

私の問題は、既存のドキュメントをオブジェクトIDで更新できないということです。私は

@app.route('/update', methods =[ 'GET', 'POST' ])  
def update(): 
    if request.method == 'POST': 
     id = request.form['object_id'] # Getting values with html 
     patientzero = BloodDoonor.query.get_or_404(id) 
     first_name = request.form['name']# Getting values with htmlform 
     last_name = request.form['surname']# Getting values with html form 
     blood_type = request.form['blood_type']# Getting values with html     
     update_record = BloodDoonor.patientzero.update(BloodDoonor.last_name = last_name) 
    return render_template('update.html', result = result) 

、フラスコを更新するための私のデフを装着しています下には私にそのエラーを与える:

AttributeError AttributeError: type object 'BloodDoonor' has no attribute 'patientzero'

私はコードでは非常に良い非常にパイソンに新しくありませんよ。私が上で与えたちょっとした説明のために私を許してください。どんな助けもありがとう。ちょうどあなたがフォームの値を持つDBから照会オブジェクトの値を変更してから、ちょうどそのオブジェクトを保存する既存のドキュメントを更新するには

+0

だけ 'update_record = patientzero.update(BloodDoonor.last_nameを試してみてください= last_name) ' – Crazyshezy

答えて

1

@app.route('/update', methods =[ 'GET', 'POST' ]) 
def update(): 
    if request.method == 'POST': 
     id = request.form['object_id'] 
     patientzero = BloodDoonor.query.get_or_404(id) 
     patientzero.first_name = request.form['name'] 
     patientzero.last_name = request.form['surname'] 
     patientzero.blood_type = request.form['blood_type'] 

     patientzero.save() 
    return render_template('update.html') 
+0

このコードを実行しようとするとFlaskは次のエラーを表示します:UnboundLocalError:代入前にローカル変数 'patientzero'が参照されました – alpha93

+0

私の答えが更新されます。エラーはインデントに関するものでした。今すぐお試しください – metmirr

+0

作品、ありがとうございました! – alpha93

関連する問題