SQLFORM.factory creates a dummy DAL Table object with the fields submitted, 
so you cannot use duplicate field names, as they are illegal in DAL tables. 
Note, technically your form can have input elements with the same name, but 
once the values are submitted to the server, the values will be joined 
together in a single list. For example, if you have three fields with the 
name "field1", request.vars.post_vars will be a list like [value1, value2, 
value3].

What are you really trying to do?

Anthony

On Wednesday, March 13, 2013 3:31:19 PM UTC-4, Richard wrote:
>
> Hello,
>
> I would like to build a bunch insert form and I wouldn't have to duplicate 
> fields definition for SQLFORM.factory
>
> I try naively 
>
> inputs = []
> for i in range(0,10):
>    inputs.append(db.table1.field1)
>    inputs.append(db.table1.field2)
>
> form = SQLFORM.factory(*inputs)
>
> But even if I get 10 inputs of each in "inputs" they all refer to the same 
> instance so when I render the form with SQLFORM.factory, I only get my 2 
> fields, but I would have 10 of each...
>
> Is there a way to avoid doing this :
>
> inputs = []
> for i in range(0,10):
>    inputs.append(Field('field1', 'type...', ...))
>    inputs.append(Field('field2', 'type...', ...))
>
> form = SQLFORM.factory(*inputs)
>
> Because doing the last example would make my code much more less DRY.
>
> Thanks
>
> Richard
>

-- 

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