【发布时间】:2018-10-25 19:22:12
【问题描述】:
我使用flask_sqlalchemy、flask_wtf、Jinja2 + 引导程序
并在models.py 开设国家、城市课程
在模板中,我有两个下拉列表,一个用于国家,另一个用于城市,
我想如果从第一个 selectfield 中选择 A country ,第二个 selectfield 只填充 A country 的城市
如果更改国家/地区,则城市选择字段会根据国家/地区选择更改城市,并且城市有一些区域和城市选择字段,并且区域选择字段是相关的
韩德尔这个案子如何?保持性能良好
但在这种情况下,使用什么是正确的(SelectField 或 QuerySelectField)
(我不知道这种情况如何写routes.py)
模型.py
class Country(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(10), unique=True)
code = db.Column(db.String(4), unique=True)
cities = db.relationship('City', backref='country', lazy=True)
class City(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(10))
code = db.Column(db.String(4))
country_id = db.Column(db.Integer, db.ForeignKey('country.id'), nullable=False)
areas = db.relationship('Area', backref='city', lazy=True)
class Area(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(20))
code = db.Column(db.String(5))
city_id = db.Column(db.Integer, db.ForeignKey('city.id'), nullable=False)
forms.py
address_country = SelectField('Country', validators=[DataRequired()], render_kw={"placeholder": _('Country')})
address_city = SelectField('City', validators=[DataRequired()], render_kw={"placeholder": _('City')})
address_area = SelectField('Area', validators=[DataRequired()], render_kw={"placeholder": _('Area')})
index.html
<div class="form-row">
<div class="form-group col-md-3">
<label> {{ form.address_country.label }}</label>
{{ form.address_country(class="form-control") }}
</div>
<div class="form-group col-md-3">
<label> {{ form.address_city.label }}</label>
{{ form.address_city(class="form-control") }}
</div>
<div class="form-group col-md-3">
<label> {{ form.address_area.label }}</label>
{{ form.address_area(class="form-control") }}
</div>
</div>
【问题讨论】:
标签: flask flask-sqlalchemy flask-wtforms wtforms