You know what Anthony, your tips is pretty fucking nice!! :D
Sorry for slang language. Richard On Thu, Mar 14, 2013 at 3:16 PM, Richard Vézina <ml.richard.vez...@gmail.com > wrote: > Hmm... That's interessting! > > Since it is not documented yet could it be modified in a near future? I > mean, if I start using it could I experiment bugs to trigger in my app in > the future cause the syntax change or something like that? > > Thanks for this tip Anthony. > > RIchard > > > On Thu, Mar 14, 2013 at 3:07 PM, Anthony <abasta...@gmail.com> 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/**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.