Thank you very much Anthony for your detailed explanation. I didn't realize 
the db select returns a Rows object.
Your solution worked!

Thank you.


On Sunday, May 20, 2012 11:03:33 PM UTC+9, Anthony wrote:
>
> I'm trying to pass a SELECT as follows:
>> def showToolEntries():
>>     if request.args(0) in ToolsDB.tables:
>>         return dict(entries=SELECT("Select from list", operationalToolsDB
>> ().select(ToolsDB[request.args(0)].serial_number)))
>>
>
> SELECT() takes either a list or a set of positional arguments. Since you 
> passed "Select from list" as the first argument, it takes the result of 
> your db select (which is a Rows object) as a positional argument and puts 
> it all in a single <option> element. The Rows object is serialized into an 
> HTML table, which apparently the browser compresses to a single row. 
> Instead, try something like this:
>
> SELECT("Select from list",
>  *[r.serial_number for r in ToolsDB().select(ToolsDB[request.args(0)].
> serial_number)])
>
> Anthony
>

Reply via email to