Hello Anthony,

I know that, I just forget to take it in consideration in my example I
guess...

What I want to do is to create a batch insert form for a table a kind of
inline edition but for insert data into database... So I would have many
rows in a html table that will contains the fields a given table and only
one submit button.

I can build my form like this :

inputs = []
for i in range(0,10):
   inputs.append(Field('field1'+'_%s' %str(i), 'type...', ...))
   inputs.append(Field('field2'+'_%s' %str(i), 'type...', ...))

form = SQLFORM.factory(*inputs)

That way I get unique distinct inputs fields.

Then with custom form I can esealy build html table in view...

But what I would like to avoid is to have 2 instances for field definition
: one in model and one in the batch insert function because it seems to me
that I can't get the field definition propertieds from model...

I would like to know if I could get field properties from model something
like that :

inputs = []
for i in range(0,10):
    inputs.append(Field(db.table1.field1.name+'_%s' %str(i),
db.table1.field1.type, ...)
    ...

Thanks

Richard


On Wed, Mar 13, 2013 at 6:28 PM, Anthony <[email protected]> wrote:

> 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.field**1)
>>    inputs.append(db.table1.field**2)
>>
>> 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.
>
>
>

-- 

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