You may check if those import are working properly :
from html import FORM, H2, P, BR, INPUT, URL from http import HTTP, redirect Could it be possible that it should be import like this : from gluon.html import FORM?? Richard On Thu, Mar 8, 2012 at 11:09 AM, Richard Vézina <[email protected] > wrote: > I think you will need to read a bit about current, current.response, > current.request, etc. > > Richard > > > On Thu, Mar 8, 2012 at 11:04 AM, Cliff <[email protected]> wrote: > >> What am I doing wrong? >> >> This code works fine in a controller. When moved to a module it fails >> with a 303 error. >> Here is the code: >> >> ### Controller: >> def trash(): >> import trash_it >> return trash_it.trashit(request, session,response, db) >> >> ## module trash_it.py >> from html import FORM, H2, P, BR, INPUT, URL >> from http import HTTP, redirect >> >> def trashit(request, session, response, db): >> import crumbs >> crumb_trail = crumbs.do_crumbs(session, request, db) >> form = FORM( >> H2('Are you sure?'), >> P('Do you really want to move the item to the trash?'), >> BR(), >> INPUT(_type='submit', _name='yes', _value='Yes, trash it', >> _style='margin-right:1em' >> ), >> INPUT(_type='submit', _name='no', _value='No'), >> ) >> response.view = 'are_you_sure.html' >> >> if form.accepts(request, session): >> if 'yes' in request.post_vars: >> db[request.controller][request.args(0)] = >> dict(is_active=False) >> session.flash = 'Item moved to trash.' >> redirect(URL(request.application, request.controller, >> 'index')) >> elif 'no' in request.post_vars: >> session.flash = 'Trash cancelled.' >> redirect(URL(request.application, request.controller, >> 'index')) >> else: >> response.flash = 'Just checking.' >> >> return dict( form=form, crumb_trail=crumb_trail) >> >> # The traceback >> >> Traceback (most recent call last): >> File "/media/Myfiles/3-o/gluon/main.py", line 493, in wsgibase >> serve_controller(request, response, session) >> File "/media/Myfiles/3-o/gluon/main.py", line 202, in >> serve_controller >> page = run_controller_in(request.controller, request.function, >> environment) >> File "/media/Myfiles/3-o/gluon/compileapp.py", line 537, in >> run_controller_in >> restricted(code, environment, filename) >> File "/media/Myfiles/3-o/gluon/restricted.py", line 204, in >> restricted >> exec ccode in environment >> File "/media/Myfiles/3-o/applications/operations/controllers/ >> buckslips.py", line 344, in <module> >> File "/media/Myfiles/3-o/gluon/globals.py", line 172, in <lambda> >> self._caller = lambda f: f() >> File "/media/Myfiles/3-o/applications/operations/controllers/ >> buckslips.py", line 341, in trash >> return trash_it.trashit(request, session,response, db) >> File "applications/operations/modules/trash_it.py", line 22, in >> trashit >> redirect(URL(request.application, request.controller, 'index'), >> File "/media/Myfiles/3-o/gluon/http.py", line 128, in redirect >> Location=location) >> HTTP: 303 SEE OTHER >> > >

