Вам необходимо добавить значение имени, чтобы выбрать <select name='mateType'>...</select>
, <select name='nomFabri'>...</select>
. Еще одна проблема, вам нужно удалить value="{{ request.form['nomModele'] }}"
из полей выбора и ввода.
Ваш код Python будет похож на это:
@bp.route('/AddAppareil', methods=['GET', 'POST'])
def AddAppareil():
nomModele = ''
numeroProduit= ''
nomFabri= ''
matType= ''
if request.method == 'POST':
nomModele = request.form['nomModele']
numeroProduit = request.form['numeroProduit']
nomFabri = request.form['nomFabri']
matType = request.form['matType']
error = None
if not nomModele:
error = 'Faux.'
if error is not None:
flash(error)
else:
db = get_db()
db.execute(
'INSERT INTO t_appareil (nomModele, numeroProduit, nomFabri, mattype)'
' VALUES (?, ?, ?, ?)',
(nomModele, numeroProduit, nomFabri, matType,))
db.commit()
return redirect(url_for('materiel.appareil'))
db = get_db()
materielTypes = db.execute(
'SELECT * FROM t_type'
).fetchall()
fabriquants = db.execute(
'SELECT * FROM t_fabriquant'
).fetchall()
return render_template('materiel/appareil.html',
nomModele = nomModele, numeroProduit=numeroProduit,
nomFabri=nomFabri, matType=matType,
materielTypes=materielTypes,fabriquants = fabriquants)
И файл appareil.html будет похож на этот:
{% extends 'base.html' %}
{% block header %}
<h1>{% block title %}nouvel appareil{% endblock %}</h1>
{% endblock %}
{% block content %}
<form method="post" class="insertdata" action="/AddAppareil">
<select name='matType'>
{% for materielType in materielTypes %}
<option value="{{ materielType['id_type'] }}"
{% if matType == materielType['id_type'] %} selected {% endfor %} >
{{ materielType['materielType'] }}
</option>
{% endfor %}
</select>
<select name="nomFabri" id="nomFabri">
{% for fabriquant in fabriquants %}
<option value="{{ fabriquant['id_fabriquant'] }}"
{% if nomFabri == fabriquant['id_fabriquant'] %} selected {% endfor %}>
{{ fabriquant['nomFabr'] }}
</option>
{% endfor %}
</select>
<input type="text" name="nomModele" id="nomModele" placeholder="nom du Modele"
value="{{ nomModele }}" required>
<input type="text" name="numeroProduit" id="numeroProduit"
placeholder="Numéro de série" value="{{ numeroProduit }}" required>
<input type="submit" value="Save">
</form>
{% endblock %}
И вам нужно добавить некоторые значения по умолчанию для полей формы:
@bp.route('/Appareil', methods=['GET', 'POST'])
def Appareil():
#...
return render_template('materiel/appareil.html',
materielTypes=materielTypes, fabriquants=fabriquants
nomModele = '',
numeroProduit= '',
nomFabri='',
matType='')