Hi,

If I understood correctly, you could use 'session' to save the list, so you 
don't have to pass it back and forth to the controller.

E.g. session.serials = [] and then session.serials.append(x)

Ykä

On Thursday, July 18, 2013 6:55:52 PM UTC+3, Kyle Flanagan wrote:
>
> What's the best way to pass a Python list back to the controller, i.e. 
> keep the list object persistent between calls? The list could get quite 
> large so I'm not sure if request.args or request.vars is appropriate for it 
> (well the items in the list)? The code below is a mockup of what I'm trying 
> to achieve. The list in question is 'serials.' 
>
> @auth.requires_login()
> def send():
>     """
>     Method for 'sending'an IBC tote to a location.
>     """
>     try:
>         if serials:
>             pass
>     except:
>         serials = list()
>     
>     if request.vars["location_id"]:
>         if request.vars["serial_number"]:
>             # update the location
>             serials.append(request.vars["serial_number"])
>
>         # start accepting input to update IBC's to this location
>         status = "Location: " + db.MyLocation[request.vars['location_id'
> ]].name
>         form = SQLFORM.factory(Field('Object_serial_number', requires=
> IS_IN_DB(db, 'Object.serial_number', '%(serial_number)s', orderby=db.
> Object.serial_number)))
>         if form.process().accepted:
>             response.flash = form.vars.Object_serial_number
>             redirect(URL('send', vars=dict(location_id=request.vars[
> "location_id"], serial_number=form.vars.Object_serial_number)))
>     else:
>         # we need to pick a location
>         form = SQLFORM.factory(Field('send_location', requires=IS_IN_DB(db
> , 'MyLocation.id', '%(name)s', orderby=db.MyLocation.name)))
>         if form.process().accepted:
>             response.flash = form.vars.send_location
>             redirect(URL('send', vars=dict(location_id=form.vars.
> send_location)))
>         status = "No location"
>         
>     return dict(grid=form, status=status, serials=serials, count=len(
> serials))
>
> Basically, the user goes to the 'send' controller, picks a location, then 
> enters serial numbers. I'd like to keep a list going so that the user can 
> remove a serial number from the list if they added one in error and then 
> submit them for updating all at once.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to