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 <[email protected]> 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 <[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 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 [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.

