Python Flask WTForms создает список строк с полями внутри шаблона формы - PullRequest
0 голосов
/ 25 января 2020

Я использую 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, полученный из строк в моей базе данных. Мысли? Я чувствую, что есть способ определить какую-то субформу, и эта субформа является Задачей, а затем как-то ссылаться на эту Форму в моей основной форме как тип поля или список полей? Но я не понимаю, как.

...