我正在尝试在SQLFORM SmartGrid中设置标题标签。我知道header参数必须是一个字典,用于指定设置引用的表,但是我很难像我期望的那样将所有内容对齐。
以下代码使用默认的标头标签。我已经尝试过各种标题组合,但都在努力使任何东西都起作用。
模型
db.define_table('parent',
Field('ParentName', type='string'),
Field('ParentDescription', type='string'),
format='%(ParentName)s'
)
db.define_table('child',
Field('ChildName', type='string'),
Field('ChildDescription', type='string'),
Field('Parent', 'reference parent')
)
控制器
def index():
grid = SQLFORM.smartgrid(db.parent,
linked_tables=['child'],
user_signature=False,
headers={'parent':{'parent.parentName':'parent'}}
)
return dict(grid=grid)
答案 0 :(得分:2)
字段名称区分大小写。你有:
headers={'parent':{'parent.parentName':'parent'}}
parentName
应该为ParentName
,与字段定义中的名称匹配。
另外,一种更简单的方法是为字段指定自定义标签:
db.define_table('parent',
Field('ParentName', label='parent', type='string'),
...)
或在特定情况下动态:
db.parent.ParentName.label = 'parent'