0

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

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”}

我想要实现的是,每个轨道有两个 TextField——一个用于轨道名称,一个用于轨道的开始时间。我意识到,就创建更多字段来适应这一点而言,我可以简单地创建更多文本字段来保存开始时间数据,如下所示:

class SeperateTracks(NoCsrfForm):
        track1 = TextField('track1')
        track2 = TextField('track2')
        track3 = TextField('track3')
        track4 = TextField('track4')
        starttime1 = TextField('starttime1')
        starttime2 = TextField('starttime2')
        starttime3 = TextField('starttime3') 
        starttime4 = TextField('starttime4')

但是,这不会将时间与相应的曲目相关联。做这样的事情的推荐方法是什么?

4

1 回答 1

1

你想要这样的东西:

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中的数据看起来像:

[{songname: "name 1", starttime: "123"}, {songname: "name 2", starttime: "456"}, ... ]

更多信息:

于 2017-08-31T07:41:41.917 回答