Я создал веб-сайт на основе «Построить живую таблицу с использованием колбы» с помощью толкателя из этого примера: https://pusher.com/tutorials/live-table-flask
Все работает фантастически, за исключением одной вещи. Для некоторых из моих значений вместо того, чтобы пользователь вводил свое собственное значение, я использую выпадающий список значений для их выбора. Когда они переходят к редактированию записи, все значения запоминаются, кроме этого, которое возвращается к значению по умолчанию. Мне нужен способ, чтобы это значение было запомнено и выбрано, когда они перейдут к редактированию детали.
Код, используемый для создания / редактирования задания (одинаково для обоих html)
backend.html
{% extends 'base.html' %}
{% block content %}
<form method="POST" id="target">
<div class="form-group">
<input type="text" class="form-control" name="work" placeholder="Work No">
</div>
<div class="form-group">
<label for='opt'>Choose Option</label>
<select name='opt'>
<option value='Option 1'>Option 1</option>
<option value='Option 2'>Option 2</option>
<option value='Option 3'>Option 3</option>
<option value='Option 4'>Option 4</option>
</select>
</div>
<button type="submit" class="btn btn-block btn-primary">Submit</button>
</form>
{% endblock %}
update.html
{% extends 'base.html' %}
{% block content %}
<form method="POST" id="target">
<div class="form-group">
<input type="text" class="form-control" name="work" value="{{ data.work }}">
</div>
<div class="form-group">
<label for='opt'>Choose Option</label>
<select name='opt'>
<option value='Option 1'>Option 1</option>
<option value='Option 2'>Option 2</option>
<option value='Option 3'>Option 3</option>
<option value='Option 4'>Option 4</option>
</select>
</div>
<button type="submit" class="btn btn-block btn-primary">Submit</button>
</form>
{% endblock %}
app.py
from flask import Flask, request, jsonify, render_template, redirect
import pusher
from database import db_session
from models import Work
import os
app = Flask(__name__)
...
@app.route('/edit/<int:id>', methods=["POST", "GET"])
def update_record(id):
if request.method == "POST":
work = request.form["work"]
opt = request.form["opt"]
update_work = Work.query.get(id)
update_work.work = work
update_work.opt = opt
db_session.commit()
data = {
"id": id,
"work": work,
"opt": opt}
pusher_client.trigger('table', 'update-record', {'data': data })
return redirect("/active", code=302)
else:
new_work = Work.query.get(id)
new_work.opt = new_work.opt #do I need this?
return render_template('update.html', data=new_work)
models.py
from sqlalchemy import Column, Integer, String, DateTime
from database import Base
class Work(Base):
__tablename__ = 'works'
id = Column(Integer, primary_key=True)
work = Column(String(50))
opt = Column(String(120))
def __init__(self, work=None, opt=None):
self.work = work
self.opt = opt
def __repr__(self):
return '<Work %r>' % (self.work)
Желание иметь возможность редактировать записи и иметь в раскрывающемся списке автоматический выбор правильной опции, а не опции по умолчанию, поэтому при редактировании вам не нужно повторно вводить все значения снова.