My solution lies below, but I think it not quite elegant. def edit(): ''' >>> request.args.append('news') >>> request.args.append(None) >>> request.extension = 'html'
>>> from gluon.storage import Storage >>> user = dict(reset_password_key='', ... first_name='t...@example.com', ... last_name='', ... password=None, ... registration_key='', ... id=2, ... email='t...@example.com') >>> auth.environment.session.auth = Storage(user=user, last_visit=datetime.datetime(2011, 1, 31, 16, 55, 52, 137567),expiration=3600) >>> assert(edit()['form'] != None) >>> request.args.append('news') >>> request.args.append(1) >>> request.extension = 'html' >>> assert(edit()['form'] != None) ''' if request.args(1) == None: form=crud.create(db[request.args(0)]) else: form=crud.update(db[request.args(0)],request.args(1)) return dict(form=form)