表结构如 -
db.define_table('parent',
Field('name'),format='%(name)s')
db.define_table('children',
Field('name'),
Field('mother','reference parent'),
Field('father','reference parent'))
db.children.mother.requires = IS_IN_DB(db, db.parent.id,'%(name)s')
db.children.father.requires = IS_IN_DB(db, db.parent.id,'%(name)s')
控制器:
grid = SQLFORM.grid(db.children, orderby=[db.children.id],
csv=True,
fields=[db.children.id, db.children.name, db.children.mother, db.children.father])
return dict(grid=grid)
这里网格显示正确的值,即父表中母亲和父亲的名字 . 但是当我尝试通过csv链接导出它时 - 结果excelsheet显示id而不是母亲和父亲的名字 .
请帮忙!
1 回答
CSV下载只是为您提供原始数据库值,而无需先应用每个字段的
represent
属性 . 如果您想要每个字段的"represented"值,则有两个选项 . 首先,您可以选择TSV(制表符分隔值)下载而不是CSV . 其次,您可以定义自定义导出类:exportclasses
参数是自定义下载类型的字典,可用于覆盖现有类型或添加新类型 . 每个项目都是一个元组,包括导出器类和用于UI中下载链接的标签 .我们应该添加这个作为选项 .