Найти - Пользователи
Полная версия: [Flask + wtforms] Связанный select
Начало » Web » [Flask + wtforms] Связанный select
1
boligolov
А как мне сделать, чтобы когда я изменяю один селект, по-второму у меня фильтр срабатывал
qboard = Board.query.filter_by(timber_id=ID).all()
вместо как у меня сейчас
qboard = Board.query.all()
ID берется из первого селекта.

models.py
class Board(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    wh = db.Column(db.Integer)
    ht = db.Column(db.Integer)
    timber_id = db.Column(db.Integer, db.ForeignKey("timber.id"))
class Timber(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    diam = db.Column(db.Integer)
    boards = db.relationship("Board", backref = 'timber')
forms.py
class AddForm(Form):
	
	chdiam = SelectField("timber", choices=[])
	chboard = SelectField("board", choices=[])
	count = TextField("count")
views.py
@app.route('/add', methods = ['GET', 'POST'])
def add():
    qtimber = Timber.query.all()
    tchoices = [(timber.id, timber.diam) for timber in qtimber]
    qboard = Board.query.all()
    bchoices = [(board.id, str(board.wh )+"x"+str(board.ht)) for board in qboard]
    form = AddForm()
    form.chdiam.choices = tchoices
    form.chboard.choices = bchoices
    return render_template('add.html',  form = form)
boligolov
Картинка вот такая
FishHook
  Ответ на вопрос: ajax
ayb
Если данных немного то можно и без ajax'а обойтись.

edit : пример
boligolov
Пример тройного, если вдруг пригодится кому.
пример
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB