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
>>
>
>

Reply via email to