Обновить существующий документ: Монго Алхимия

Мне нужна помощь с MongoAlchemy. Я пытаюсь создать веб-приложение с python, flask, Mongo DM и Mongo Alchemy (как средство отображения документов объекта), и я пытаюсь обновить существующие документы.

Моя проблема в том, что я не могу обновить существующий документ через его идентификатор объекта. Ниже я прилагаю свою дефи для обновления

@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: тип объекта "BloodDoonor" не имеет атрибута Patientzero

Я очень плохо знаком с Python и не очень хорош в коде. Пожалуйста, прости меня за небрежное описание, которое я дал выше. Любая помощь будет оценена.

1 ответ

Чтобы обновить существующий документ, просто измените значение объекта, к которому вы обратились из db, со значениями формы, а затем просто сохраните этот объект:

@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')
Другие вопросы по тегам