Okay quick update: I loaded a row into python to test the comprehension. row = db(db.table.id>0).select().first()
{f: row[f] for f in db.table.fields} prints out the list fine and its exactly how I"d like to prepopulate my field on the transition form. Thank you for getting me this far. However when I try to type vars={f: row[f] for f in db.table.fields})))] I get invalid syntax and the ^ points to the for in the dict comprehension. When I use regular python it works fine. Any thoughts? On Friday, May 2, 2014 3:16:24 PM UTC-4, LoveWeb2py wrote: > > I just realized I might be running into problems because I'm using 2.3. I > haven't upgraded because the new web2py threw my css off. It looks like > you're referencing the virtual fields? > > > http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Old-style-virtual-fields > > If you think I should upgrade i'll make the change, but if I could stick > with 2.3 I would prefer to do so > > On Friday, May 2, 2014 3:10:15 PM UTC-4, LoveWeb2py wrote: >> >> for this part: {f: row[f] for f in db.table.fields} >> >> what do I put for fields... could I just leave it as fields? >> >> >> >> On Friday, May 2, 2014 11:16:09 AM UTC-4, Richard wrote: >>> >>> Yes, so you want to pas by a transitionnal form with the data preset >>> base on the copied record values, where you can make the change you want >>> before submit the form. So if you have a grid where you can select the >>> record to copy with the icon you want that link to the transitionnal form, >>> you just have to pass the value of the record to the form throught out URL >>> vars... You can iter like that : >>> >>> SQLFORM.grid(..., links=[dict(header='', body=lambda row: >>> A(I(_class='icon some_icon'), _href=URL('transitionnal_form', vars={f: >>> row[f] for f in db.table.fields}))))],) >>> >>> This part : >>> {f: row[f] for f in db.table.fields} >>> >>> Is a dict comprehension... >>> >>> Then in transitionnal form controller you do something like that : >>> >>> def transition_form(): >>> for f, v in request.vars: >>> db.table[f].default = v >>> form = SQLFORM(db.table, ...) >>> ... >>> >>> >>> Richard >>> >>> >>> On Fri, May 2, 2014 at 10:18 AM, LoveWeb2py <atayl...@gmail.com> wrote: >>> >>>> Basically... right now I have a magnifying glass, the pencil, and a >>>> trash can for my records. I want to add a plus next to each one of my >>>> records and when I click on the plus it copies that records values into a >>>> new record and creates a new ID. >>>> >>>> I can then modify some of the values in the record or keep it the same >>>> if I choose. Does that make sense? >>>> >>>> >>>> On Friday, May 2, 2014 9:57:23 AM UTC-4, LoveWeb2py wrote: >>>>> >>>>> This is very helpful, Richard. I have about 20 fields so I think I >>>>> would have to iterate through the fields and insert the request.vars to >>>>> the >>>>> database. >>>>> >>>>> Ahhh after looking at your code it looks like that could would write a >>>>> record from one table to another. In this case I just want to copy a >>>>> record >>>>> from the same table and insert the record as a new ID. >>>>> >>>>> I think the answer will be a combination of your and Oli's approach. >>>>> >>>>> >>>>> On Friday, May 2, 2014 9:39:46 AM UTC-4, Richard wrote: >>>>>> >>>>>> What do you mean? >>>>>> >>>>>> You can redirect (A('Link', _href=URL(controler, function, >>>>>> vars=dict(pass_your_record_vars_here=record_vars1, ...))) to a >>>>>> function that do what I wrote above... Just pass record value throught >>>>>> vars >>>>>> then request.vars.field1 request.vars.field2 and assign .default= >>>>>> request.vars.field1 >>>>>> >>>>>> Richard >>>>>> >>>>>> >>>>>> >>>>>> On Fri, May 2, 2014 at 9:33 AM, LoveWeb2py <atayl...@gmail.com>wrote: >>>>>> >>>>>>> Richard, >>>>>>> >>>>>>> How do I assign this to a button though? >>>>>>> >>>>>>> >>>>>>> On Friday, May 2, 2014 9:30:21 AM UTC-4, Richard wrote: >>>>>>> >>>>>>>> keepvalues >>>>>>>> >>>>>>>> or >>>>>>>> >>>>>>>> row = db(...).select(db.table.record).first() >>>>>>>> >>>>>>>> db.other_table.field1.default = row.field >>>>>>>> >>>>>>>> form = SQLFORM(db.table, ...) >>>>>>>> >>>>>>>> Richard >>>>>>>> >>>>>>>> >>>>>>>> On Fri, May 2, 2014 at 9:07 AM, Oli <oliver...@gmx.net> wrote: >>>>>>>> >>>>>>>>> I hope this help. >>>>>>>>> >>>>>>>>> def copy_and_edit(): >>>>>>>>> """ >>>>>>>>> copy_and_edit >>>>>>>>> """ >>>>>>>>> record = db.t_disciplin(request.args[0]) >>>>>>>>> >>>>>>>>> vals = {} >>>>>>>>> for k,v in record.items(): >>>>>>>>> if k in db.t_disciplin.fields: >>>>>>>>> if k == 'f_title': >>>>>>>>> v = v + "_copy" >>>>>>>>> recname = str(v) # Needed to redirect the page to >>>>>>>>> the right record >>>>>>>>> if k != 'id': >>>>>>>>> vals[k] = v >>>>>>>>> >>>>>>>>> db.t_disziplin.insert(**vals) >>>>>>>>> >>>>>>>>> rec = db(db.t_disziplin.f_title == recname).select().first() >>>>>>>>> rec_id = rec.id >>>>>>>>> >>>>>>>>> # redirect for edit the new record >>>>>>>>> redirect(URL(r=request, f='konstanten/t_disciplin/edit >>>>>>>>> /t_disciplin',args=str(rec_id))) >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Am Freitag, 2. Mai 2014 14:29:26 UTC+2 schrieb LoveWeb2py: >>>>>>>>> >>>>>>>>>> Hello, >>>>>>>>>> >>>>>>>>>> There are many times when I just want to copy the values of one >>>>>>>>>> record in my sqlform and create a new record, but modify the content >>>>>>>>>> and >>>>>>>>>> save it. Is there an easy way to do this with web2py or would I have >>>>>>>>>> to >>>>>>>>>> write the code? >>>>>>>>>> >>>>>>>>>> Many thanks >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> Resources: >>>>>>>>> - http://web2py.com >>>>>>>>> - http://web2py.com/book (Documentation) >>>>>>>>> - http://github.com/web2py/web2py (Source code) >>>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>>>>> --- >>>>>>>>> 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/d/optout. >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>> Resources: >>>>>>> - http://web2py.com >>>>>>> - http://web2py.com/book (Documentation) >>>>>>> - http://github.com/web2py/web2py (Source code) >>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>>> --- >>>>>>> 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/d/optout. >>>>>>> >>>>>> >>>>>> -- >>>> Resources: >>>> - http://web2py.com >>>> - http://web2py.com/book (Documentation) >>>> - http://github.com/web2py/web2py (Source code) >>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>> --- >>>> 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/d/optout. >>>> >>> >>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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/d/optout.