【发布时间】:2016-09-03 06:00:44
【问题描述】:
我正在尝试呈现一个包含 3 个文本字段和一个选择字段的表单。我可以使用来自数据库的数据而不是选择字段来呈现文本字段。 选择字段必须将来自数据库的数据和其他选项显示为选定选项。 我正在使用: Flask-SQLAlchemy==2.1 Flask-WTF==0.12
这是代码:
查看
@app.route('/gateway/edit/<int:gwt_id>', methods=['GET','POST'])
def gateway_edit(gwt_id):
q = Device.query.filter_by(gtw_id=gwt_id).first()
form = Gateway(obj=q)
form.populate_obj(q)
return render_template('gateway.html', form=form)
型号
class Gateway(db.Model):
__tablename__ = "gateway"
gateway_id = db.Column(db.Integer, primary_key=True)
gateway_name = db.Column(db.String(64))
gateway_desc = db.Column(db.String(64))
devices = db.relationship('Device', backref='gateway', lazy='dynamic')
class Device(db.Model):
__tablename__ = "device"
device_id = db.Column(db.Integer, primary_key=True)
device_name = db.Column(db.String(64))
device_desc = db.Column(db.String(64))
gateway_id = db.Column(db.Integer,db.ForeignKey('gateway.gateway_id'))
device_ip = db.Column(db.String(64))
表格
class Gateway(Form):
gateway_name = StringField('Gateway Name')
gateway_desc = TextAreaField('Gateway Description')
def gtws():
return Gateway.query
class Device(Form):
device_name = StringField('Device Name')
device_desc = TextAreaField('Device Description')
device_ip = StringField('Device IP')
gtw_group = QuerySelectField('Gateway',query_factory=gtws)
模板
{{ render_field(form.device_name, class="form-control")}}
{{ render_field(form.device_desc, class="form-control")}}
{{ render_field(form.device_ip, class="form-control")}}
{{ render_field(form.gtw_group, class="form-control")}}
提前致谢,
【问题讨论】:
标签: flask flask-sqlalchemy flask-wtforms