Web2Py SmartGrid标头

时间:2019-01-22 22:33:37

标签: web2py

我正在尝试在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)

1 个答案:

答案 0 :(得分:2)

字段名称区分大小写。你有:

headers={'parent':{'parent.parentName':'parent'}}

parentName应该为ParentName,与字段定义中的名称匹配。

另外,一种更简单的方法是为字段指定自定义标签:

db.define_table('parent',
    Field('ParentName', label='parent', type='string'),
    ...)

或在特定情况下动态:

db.parent.ParentName.label = 'parent'