Это мое определение БД.Web2py SQLForm.grid: удаление загруженных файлов, сохраненных с оригинальным именем
db.define_table('emsAlertTokens',
Field('emsrelease',default=session.releasefield,writable=False,label=T('Release')),
Field('emsmachine',default=session.machinefield,writable=False,label=T('Machine')),
Field('emsstartdate','datetime',default=request.now,label=T('Start Date')),
Field('emsenddate','datetime',IS_NOT_EMPTY(error_message='Please specify the End Date.'), label=T('End Date')),
Field('errorgrepfile','upload',requires=IS_NOT_EMPTY(error_message='Please upload a valid error tokens file'),custom_store=ems_file, custom_retrieve=ems_retrieve, autodelete=True, uploadfield=True, uploadfs=None, label=T('Error Tokens')),
Field('tokenname','string',requires=IS_NOT_EMPTY('What would you call your token file?'),label=T('Token File Name')))
Мой контроллер:
def setemstoken():
query = (db.emsAlertTokens)
headers = {'emsAlertTokens.emsrelease': 'Release', 'emsAlertTokens.emsmachine': 'Machine', 'emsAlertTokens.emsstartdate':'Start Time', 'emsAlertTokens.emsenddate': 'End Time','emsAlertTokens.errorgrepfile': 'Token File'}
upload = lambda filename: URL("ems_download", args=[filename])
grid = SQLFORM.grid(query=query,headers=headers,create=True, upload=upload,user_signature=True, deletable=True, editable=True, maxtextlength=100, paginate=25,formargs=dict(message_onsuccess='Error Filter Set',message_onfailure='Form has errors. Tokens not accepted.'),onvalidation=emsvalidate)
return dict(grid=grid)
Как можно заметить, существует обычай загрузки, получить функцию. Это было сделано, чтобы сохранить файл в оригинальном имени, и он работает нормально. Параметр «autodelete = True» установлен для SQLForm. Но поскольку есть пользовательская функция загрузки/загрузки и из-за этого физические файлы не удаляются, когда я удаляю строку из сетки.
Просьба посоветуйте мне об этом, как включить функцию удаления, чтобы всякий раз, когда строка удаляется, физический файл, связанный с ней, также удаляется.
Заранее спасибо.