Я решил, используя следующий код
form.Ear_type_name.data =int(Earid[0].id)
form.Ear_per_name.data = int(Perid[0].id)
Код выше - это значение индекса прохода соответствующего выбранного поля, чтобы сформировать тип поля выбора, в моем случае это было 1|Nirav
, поэтому мне нужно пройти 1, чтобы выбратьтип данных формы поля.
В форме я использовал поле выбора вместо поля выбора запроса.
Ear_per_name=SelectField('PersonName', choices=[], coerce=int)
Ear_type_name=SelectField('EarningType Name', choices=[], coerce=int)
Вы можете загрузить это поле из базы данных, используяследующий метод
person=Persons.query.filter_by(u_id=current_user.id)
eartype = EarType.query.filter_by(u_id=current_user.id)
eartype_list = [(j.id, j.EarType_name) for j in eartype]
person_list = [(i.id, i.per_name) for i in person]
form.Ear_per_name.choices = person_list
form.Ear_type_name.choices = eartype_list
Вот мой обновленный метод редактирования кода маршрута
@bp.route('/earnings/edit_earn',methods=['GET','POST'])
@login_required
def edit_earn():
earID = request.args.get("earn_id")
earnings = Earnings.query.filter_by(id= earID,U_id=current_user.id).all()
form = EarningEntryForm(request.form,obj=earnings)
meth = request.method
if form.validate_on_submit():
earnings.Ear_per_name =str(form.Ear_per_name.data)
earnings.Ear_type_name =str(form.Ear_type_name.data)
earnings.Ear_amt = form.Ear_amt.data
earnings.Ear_date = form.Ear_date.data
earnings.Ear_FileName = form.Ear_img.data.filename
earnings.Ear_img = form.Ear_img.data.read()
earnings.Ear_comm =form.Ear_comm.data
elif request.method == 'GET':
#THis code will load the dropdown box.
person = Persons.query.filter_by(u_id=current_user.id)
eartype = EarType.query.filter_by(u_id=current_user.id)
eartype_list = [(j.id, j.EarType_name) for j in eartype]
person_list = [(i.id, i.per_name) for i in person]
form.Ear_per_name.choices = person_list
form.Ear_type_name.choices = eartype_list
#This where edit form take place.
Earid = EarType.query.filter_by(EarType_name =earnings[0].Ear_type_name).all()
Perid = Persons.query.filter_by(per_name =earnings[0].Ear_per_name).all()
form.Ear_type_name.data =int(Earid[0].id)
form.Ear_per_name.data = int(Perid[0].id)
form.Ear_amt.data = earnings[0].Ear_amt
form.Ear_date.data = earnings[0].Ear_date
form.Ear_FileName.data = earnings[0].Ear_FileName
form.Ear_comm.data = earnings[0].Ear_comm
return render_template('earning/earn_Edit.html', form=form, ear=earnings)
Happy Codding.