This worked well. Thanks.

On Thursday, July 18, 2013 11:18:23 AM UTC-5, Ykä Marjanen wrote:
>
> 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