Web2Py 智能网格 Headers

Web2Py SmartGrid Headers

我正在尝试在 SQLFORM SmartGrid 中设置 header 标签。我知道 header 参数必须是一个字典,它指定 table 设置指的是哪个,但我很难让所有内容都按我的预期排列。

下面的代码使用默认的 header 标签。我已经尝试了 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)

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

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

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

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

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

或在特定上下文中动态:

db.parent.ParentName.label = 'parent'