0
我要生成使用數據庫表中的sqlform.grid定義爲:動態改變字段值
db.define_table('ClientInfo',
Field('HostID', type='text', label='HostID'),
Field('MACAddress', type='text', label='MACAddress'),
Field('MachineName', type='text', label='MachineName'),
Field('IPAddress', type='text', label='IPAddress'),
Field('TimeOffset', label='TimeOffset'),
Field('RunningAs', type='text', label='RunningAs'),
Field('SystemVersion', type='text', label='SystemVersion'),
Field('OSType', type='integer', label='OSType'),
Field('AgentVersion', type='text', label='AgentVersion'),
Field('FirstCheckin', type='datetime', label='FirstCheckin'),
Field('LastCheckIn', type='datetime', label='LastCheckIn')
)
的OSTYPE字段是一個枚舉型整數,因此我想改變它在顯示之前,以便它不是通過整數而是通過字符串來標識操作系統類型(例如0 = Windows XP,1 = Windows 2012,而不是)。是否有捷徑可尋?
感謝您的信息,但我更尋找如何修改.grid或.smartgrid輸出,而不是顯示OSType列的0,1,2等,它顯示標籤。我嘗試修改Field()條目,如你所建議的那樣,它沒有改變.grid輸出:( – tjac
@tjac使用替代表示法。編寫一個返回值的函數(例如Windows XP,Windows 2012 ..)給定的id /整數(例如0,1 ..)。閱讀[Field constructor- represent](http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Field-constructor) 。'db.ClientInfo.OSType.represent = lambda os_id,row:_get_os_name(os_id)'。您也可以使用'IS_IN_SET()'的字典,這將很容易 –
對不起,原來的答案只是集中在窗體也可以創建/編輯記錄)答案已經更新,可以處理表單小部件和顯示網格中的值。 – Anthony