Я бы порекомендовал спросить в web2py google group
Вы можете изменить / добавить к response.menu из функции вашего контроллера, чтобы вы могли попробовать настроить основную часть вашего меню в models / menu.py, а затем добавить в запись «журнала управления» внутри соответствующего контроллера. функция.
Кроме того, при генерации URL вам не нужно делать 'method2? Filter_scenario =% s'% my_dynamic_var, вы просто должны позволить помощнику URL () позаботиться о нем, как в:
URL(request.application, 'default', 'method2', vars=dict(filter_scenario = my_dynamic_var))
Так что все вместе, может быть, попробовать что-то вроде этого
Модели / menu.py
response.menu = [
[T('Home'), False,
URL(request.application,'default','index'), []],
[T('Request Log'), False, URL(request.application, 'default', 'method1'),],
]
Контроллеры / default.py
def method2():
form = FORM(#define your form here)
if form.accepts(request.vars, session):
#add in extra menu option
response.menu.append([T('Management Log'), False, URL(request.application, 'default', 'method2', vars=dict(filter_scenario = form.vars.my_dynamic_var)),])