Forms.py
class IndexForm(FlaskForm)
indid = IntegerField('indid', id='indid') // this passes the index id to routes.py for processing,
// but it leaves my form open for users to
//edit the primary key (not a good option)
indid = IntegerField('indid', id='indid',render_kw={'disabled':''})
Отключение отображаемого идентификатора не позволяет пользователям изменять поле в форме, но также не позволяет WTFORM пересылать ключевое поле, которое отображается следующим как ('indid', '1510')
(Pdb) In: request.form
Out: ImmutableMultiDict([('indid', '1510'), ('code', 'EF.EFM.OVRL.XD22'), ('label', 'Economic Fitness 22'), ('description', 'Economic Fitness Metric'), ('topic', '__None'), ('subtopic1', '__None'), ...])
Jinja2 HTML
<form class="form" method="post" action="/new_edit" enctype="multipart/form-data">
{{ form.indid(class="form-control", value="` + indid + `") }} <!-- preload is from JS-->
<!-- <input name="id" type="text" class="form-control" disabled value=""> -->
<button type="submit">Update Table</button>
</form>
Это похоже на часто решаемую проблему, учитывая, как часто заполненные формы обновлений кодируются каждый день.