Я использую WTForms с Python / Flask, и у меня есть псевдокод того, чего я хотел бы достичь в WTForms, но не могу найти подтверждающую документацию о том, как этого добиться. Ниже приведен пример одной формы в моем коде:
class ActivityTemplateForm(FlaskForm):
template_id = StringField('TemplateId', validators=[DataRequired()])
templatecreated = StringField('Template Created', validators=[DataRequired()])
templatename = StringField('Template Name', validators=[DataRequired()])
template_store_id = StringField('Store Location', validators=[DataRequired()], id='store_list')
template_tech_onsite = BooleanField('Technician On-Site')
tech_mobile = StringField('Technician Mobile', validators=[validate_phone(region='AUS')], render_kw={"placeholder": "+61412345678"})
submit = SubmitField('Create Template')
Что я хотел бы сделать, это добавить список возможных задач в эту шаблонную форму и позволить пользователю выбрать одну или несколько из них. Задачи «связать» с шаблоном, чтобы они могли сохранить это в базе данных. В сущности, я бы хотел описать поле моей ActivityTemplateForm следующим образом:
TaskRow - TaskName = StringField - Selected = CheckBox
Затем укажите это в моей ActivityTemplateForm как:
class ActivityTemplateForm(FlaskForm):
template_id = StringField('TemplateId', validators=[DataRequired()])
templatecreated = StringField('Template Created', validators=[DataRequired()])
templatename = StringField('Template Name', validators=[DataRequired()])
template_store_id = StringField('Store Location', validators=[DataRequired()], id='store_list')
template_tech_onsite = BooleanField('Technician On-Site')
tech_mobile = StringField('Technician Mobile', validators=[validate_phone(region='AUS')], render_kw={"placeholder": "+61412345678"}),
List of Tasks, each with its own task name and checkbox.
- Task 1, yes/no
- Task 2, yes/no
- Task 3, yes/no
Когда нажата Submit, мы фиксируем, какие задачи выбрал пользователь. Таким образом, форма при рендеринге выглядит следующим образом:
TemplateId:
TemplateCreated:
TemplateName:
Template Store ID:
Tech Onsite: yes/no
mobile:
task 1 yes/no
task 2 yes/no
task 3 yes/no
SUBMIT
И список задач - это Dynami c, полученный из строк в моей базе данных. Мысли? Я чувствую, что есть способ определить какую-то субформу, и эта субформа является Задачей, а затем как-то ссылаться на эту Форму в моей основной форме как тип поля или список полей? Но я не понимаю, как.