I didn't find noting, but didn't search that much... Ask a couple of time.
There is many problems to resolve, and I there is no single way to solve
them. I develop something that may works for me, but may be not exactly
what you are searching for. Anyway... As soon as I get something correct I
show it here...

Richard


On Fri, Mar 15, 2013 at 11:24 PM, 黄祥 <steve.van.chris...@gmail.com> wrote:

> that's good, thanks for sharing. that's what i'm looking for, because if
> i'm not wrong, there is no web2py appliances that show how to add multiple
> data simultaneously within 1 form.
>
>
> On Saturday, March 16, 2013 8:58:36 AM UTC+7, Richard wrote:
>
>> Yop!
>>
>> I am almost finish, I will publish the code I come up with when it good
>> enough...
>>
>> :)
>>
>> Richard
>>
>>
>> On Fri, Mar 15, 2013 at 8:24 PM, 黄祥 <steve.van...@gmail.com> wrote:
>>
>>> nice solution, with this can solve the problem to add the multiple data
>>> simultanously within one form.
>>>
>>>
>>> On Friday, March 15, 2013 2:07:11 AM UTC+7, Anthony wrote:
>>>>
>>>> How about:
>>>>
>>>> for i in range(0,10):
>>>>     inputs.append(db.table1.field1****.clone(name='%s_%s' % (db.table1.
>>>> field1.name, i)))
>>>>
>>>> The .clone() method copies the field, but you can pass in arguments to
>>>> replace some of the existing attributes (such as the name). I don't think
>>>> this is documented, though.
>>>>
>>>> Anthony
>>>>
>>>> On Thursday, March 14, 2013 8:42:21 AM UTC-4, Richard wrote:
>>>>>
>>>>> 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<http://db.table1.field1.name>+'_%s'
>>>>> %str(i), db.table1.field1.type, ...)
>>>>>     ...
>>>>>
>>>>> Thanks
>>>>>
>>>>> Richard
>>>>>
>>>>>
>>>>> On Wed, Mar 13, 2013 at 6:28 PM, Anthony <abas...@gmail.com> 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 web2py+un...@googlegroups.com.
>>>>>> For more options, visit 
>>>>>> https://groups.google.com/**grou**ps/opt_out<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 web2py+un...@**googlegroups.com.
>>> For more options, visit 
>>> https://groups.google.com/**groups/opt_out<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 web2py+unsubscr...@googlegroups.com.
> 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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to