【发布时间】:2020-06-03 14:54:41
【问题描述】:
我有一个表单,可以动态填充使用 .default 方法的值。
像这样:
for i, item in enumerate(staff):
if item.id == "csrf_token" or item.id == "submitstaff":
continue
item.default = stafftable[0][i]
staff.process()
我也使用过这个表格,没有这个过程,它也有效。但是,当我在完成此过程后使用它时,它总是采用默认值,不允许用户再更新这些值。例如,如果我显示表单 agian 并尝试更改字段的值,它将采用进程设置的 .default 字段而不是输入。
表格:
class Staff(FlaskForm):
staffid = StringField(
validators=[DataRequired(message="Staff Id Field can not be left blank")]
)
Firstname = StringField(
validators=[DataRequired(message="Firstname Field can not be left blank")]
)
LastName = StringField(
validators=[DataRequired(message="LastName Field can not be left blank")]
)
ProjectRole = StringField(
validators=[DataRequired(message="ProjectRole Field can not be left blank")]
)
YearsOfExperience = FloatField(
validators=[
DataRequired(message="Years of experience Field can not be left blank")
]
)
Organisation = SelectField(
"Organisations",
choices=[
("1","1"),
("1","1"),
("1","1"),
],
)
OfficeLocation = StringField(
validators=[DataRequired(message="Office location Field can not be left blank")]
)
Discipline = SelectField(
"Discipline",
choices=[
("Geotechnics", "Geotechnics"),
("Civil", "Civl"),
("Digital", "Digital"),
("Project Management", "Project Management"),
],
)
KeyPersonName = SelectField(choices=[("No","No"),("Yes","Yes")])
BatchNo = StringField(
validators=[DataRequired(message="BatchNo Field can not be left blank")]
)
ProjectStatus = StringField(
validators=[DataRequired(message="ProjectStatus Field can not be left blank")]
)
Booking = StringField(
validators=[DataRequired(message="Booking Field can not be left blank")]
)
TasksEarlyDeliverables = TextAreaField(
validators=[
DataRequired(
message="Tasks and early deliverables Field can not be left blank"
)
]
)
requester = StringField()
package = StringField()
PercentoftimeS1 = FloatField()
HourlyRate = FloatField()
PercentoftimeS2 = FloatField()
submitstaff = SubmitField(label="Submit", validators=[DataRequired()])
【问题讨论】:
标签: python flask flask-wtforms wtforms flask-restful