簡體   English   中英

如何使用WTForms,Jinja和Python管理多個具有相同名稱的HTML元素

[英]How to manage multiple HTML elements with same name using WTForms, Jinja & Python

我用Jinja定義了一個HTML模板,在其中我定義了三(3)個具有相同名稱的文本字段。 然后在后端使用get_all方法收集了所有值。

然后為了添加表單驗證等,我添加了WTForms庫。 然后我定義一個表單為:

class RoleForm(BaseForm):
    name = fields.TextField(_('Name'))

在HTML頁面中,我將此元素渲染了三(3)次。

現在,當我提交表單並且驗證失敗時,我使用表單作為輸入重新渲染模板。 但是,每個元素都有我輸入的值,所有文本字段都具有第一個文本字段的值。

此外,如果可以通過驗證,則我使用form.name.data,它不會為我提供來自三個文本字段的所有數據,而僅是第一個。

你知道我該如何處理嗎?

提前致謝!

您正在尋找wtforms.fields.FieldList字段附件:

class RoleForm(BaseForm):
    name = fields.FieldList(fields.TextField(_('Name')), min_entries=3)

您需要做的就是創建這樣的HTML input元素:

<input name="row-{{ loop.index0 }}" type="checkbox">

它將呈現以下輸入:

<input name="row-0" type="checkbox">
<input name="row-1" type="checkbox">

內循環或類似的東西。 然后,您將能夠檢索表單內容:

class ListForm(Form):
    row = FieldList(fields.TextField('Row'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM