Wtforms使用每个键有两个值的formfield创建Dict

2024-05-23 14:30:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够将cd上每个曲目的曲目名称和开始时间都收集到表中的dict或json列中。 我定义了一个formfield来捕获与曲目名称相关的数据并将其保存在dict中:

class SeperateTracks(NoCsrfForm):
        track1 = TextField('track1')
        track2 = TextField('track2')
        track3 = TextField('track3')
        track4 = TextField('track4')

class SendForm(Form):
        alltracks = FormField(SeperateTracks)

这将创建一个如下所示的词典:

{“track1”:“songname1”,“track2”:“songname2”,“track3”:“songname3”,“track4”:“songname4”}

我想实现的是,每个音轨有两个文本域-一个是音轨名称,一个是音轨的开始时间。 我意识到,要创建更多的字段来适应这种情况,我可以简单地创建更多的文本字段来保存开始时间数据,如下所示:

^{pr2}$

然而,这并不能将时代与相应的轨道联系起来。做这样的事情,推荐的方法是什么?在


Tags: 数据文本名称时间cd曲目dictclass
1条回答
网友
1楼 · 发布于 2024-05-23 14:30:28

你会想要这样的东西:

class Track(NoCsrfForm):
    songname = StringField('Song Name')
    starttime = StringField('start time')

class SeparateTracks(NoCsrfForm):
    tracks = FieldList(FormField(Track), min_entries=1, max_entries=4)

我根据您的示例对max_entries进行了假设,但这不是严格要求的,您可以用这种方式管理1到N个条目之间的任何位置。

python中的数据如下所示:

^{pr2}$

更多信息:

相关问题 更多 >