为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用 wtforms、append_entry() 和 FieldList

无法使用 wtforms、append_entry() 和 FieldList

米琪卡哇伊 2022-04-27 13:34:15
我正在努力更改使用 .append_entry() 动态添加的 FieldList 子表单的标签。我可以成功地更改整个表单的标签,并且直接在每个单独的字段前面,但我仍然在每个连续的字段实例上方得到一个项目符号和一个默认的 label-0、label-1、label-2 等,我无法重命名或删除它。我正在创建一个表格,收集不同地区存在的不同数量的社区和武装分子的特征。我有一个整体表格和四个子表格。例如,如果我有 2 个区域和 3 个社区,我的表格的第一部分称为 regionpercent,会询问每个区域的人口中认同每个社区的百分比,如下所示:地区 1社区 1百分比: 社区 2百分比: 社区 3 百分比:区域 2社区 1百分比: 社区 2百分比: 社区 3 百分比:所以我需要将 regionpercent 的子标签更改为 ['Region1 <br>Percent Community 1:', 'Percent Community 2:', 'Percent Community 3:', ' <br>Region 2 <br>Percent Community 1:', 'Percent Community 2:', '百分比社区 3:']。但是现在,在六个字段中的每一个之前,我都有一个“regionpercent-0”、“regionpercent-1”等等。主窗体称为 ThirdForm()。
查看完整描述

2 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

我通过在我的 HTML 模板中使用 Javascript 根据隐藏在页面中的名称查找标签来解决了这个问题。然后我用我喜欢的标签名称替换它们。例如,出现的不需要的标签是 regionpercent-0,我使用了以下代码:


var label = document.querySelector('label[for="regionpercent-0"]') !==null;

if (label) {

    var label = document.querySelector('label[for="regionpercent-0"]');

    label.textContent = '{{ region_percent_list[0] }}';

}

其中 region_percent_list[0] 是我想要使用的实际标签的变量名。


查看完整回答
反对 回复 2022-04-27
?
心有法竹

TA贡献1866条经验 获得超5个赞

我理解你的挣扎。


列表中的每个项目都使用 Label 类,该类具有 field_id 和 text 属性。


然后您可以编辑标签字段中的文本,如下所示:


for i in range(len(regionnames)*len(communitynames)):

    form.regionpercent.append_entry()

    form.regionpercent[i].label.text = 'Region {}'.format(i)  # include this line

显然还有其他变化,但我认为这足以理解逻辑。


这对我帮助很大。


查看完整回答
反对 回复 2022-04-27
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信