我在my_model.py
table_fields = [
'my_name-string',
'my_id-integer',
]
我的目标是根据这些信息创建一个表,所以我尝试了:
fields_and_types_dict ={}
for tf in table_fields:
fields_and_types = tf.split('-')
fields_and_types_dict['%s' % fields_and_types[0]] = {}
fields_and_types_dict['%s' % fields_and_types[0]]['type'] = '%s' % fields_and_types[1]
db.define_table('my_table', fields_and_types_dict)
它无法正常工作,我想我没有正确的数据结构。 任何人都可以提供一个暗示它的样子吗?提前谢谢。
解决方案:
最优雅的解决方案是:
db.define_table('my_table', *[Field(*tf.split('-')) for tf in table_fields])
正如安东尼所说。
我使用的不那么复杂的解决方案是:
tableDef = ['my_table']
for tf in table_fields:
name, type = tf.split("-")
tableDef.append(Field(name, type))
db.define_table(*tableDef)
按照Vanojx1的建议。
答案 0 :(得分:1)
根据DOC,试试这个:
tableDef = ['my_table']
for tf in table_fields:
name, type = tf.split("-")
tableDef.append(Field(name, type))
db.define_table(*tableDef)