Заполнение формы загрузки файла FLASK
В ORM-модели имею следующее поле для файла миниатюры:
thumbnail_file = FileField('Файл аннотации')
Имею подобную форму с добавлением файла миниатюры:
@app.route("/add-job", methods=["GET", "POST"])
@login_required
def add_job():
...
filename = secure_filename(form.thumbnail_file.data.filename)
if filename:
form.thumbnail_file.data.save(f'static/img/cases/{filename.replace(' ', '-')}')
logging.info(f"Изображение сохранено в static/img/{filename}")
job = Jobs(
job=form.job.data,
team_leader=form.team_leader.data.split(".")[0],
collaborators=",".join(collaborator.split(".")[0] for collaborator in form.collaborators.data),
work_size=form.work_size.data,
category=form.category.data,
is_finished=form.is_finished.data,
thumbnail_file=filename
)
...
При изменении формы подгружаю в неё все поля, включая поле загрузки файла
@app.route("/edit-job/<int:job_id>", methods=["GET", "POST"])
@login_required
def edit_job(job_id):
db_sess = db_session.create_session()
user_full_names_and_ids = {user.id: f"{user.name} {user.surname}" for user in db_sess.query(User).all()}
category_ids = tuple(category_id[0] for category_id in db_sess.query(Category.id).all())
form = AddJobForm(tuple(f"{user_id}. {user_full_name}" for user_id, user_full_name
in user_full_names_and_ids.items()), category_ids)
if request.method == "GET":
jobs = db_sess.query(Jobs).filter(Jobs.id == job_id,
(Jobs.team_leader == current_user.id) | (
current_user.id == 1)).first()
if jobs:
form.job.data = jobs.job
form.team_leader.data = f"{jobs.team_leader}. {user_full_names_and_ids[jobs.team_leader]}"
form.collaborators.data = tuple(f"{int(collaborator_id)}. {user_full_names_and_ids[int(collaborator_id)]}"
for collaborator_id in jobs.collaborators.split(","))
form.work_size.data = jobs.work_size
form.category.data = jobs.category
form.is_finished.data = jobs.is_finished
if jobs.thumbnail_file:
with open(f'static/img/cases/{jobs.thumbnail_file}', 'rb') as file:
form.thumbnail_file.data = FileStorage(stream=file, filename=file.name, content_type='image/png')
else:
abort(404)
...
Но, к сожалению, при моём решении ничего не подгружается. Пожалуйста, помогите(