**dict(...)

On Fri, May 2, 2014 at 4:10 PM, Austin Taylor <atayloru...@gmail.com> wrote:

> I will definitely upgrade in the upcoming months... but for now I"m stuck
> with 2.6. Your dict comprehension worked, but now I'm getting an error when
> I click bthe button saying there are too many values to unpack. I'm
> guessing this is because I'm using 2.6 again and its something to do with
> my function:
>
> def transition_form():
>    for f, v in rqeuest.vars:
>      db.table[f].default = v
> form = SQLFORM(db.table)
> return dict(form=form)
>
>
> On Fri, May 2, 2014 at 4:03 PM, Richard Vézina <
> ml.richard.vez...@gmail.com> wrote:
>
>> Try with dict() contructor in one of my last email if you want to stay in
>> 2.6
>>
>> Richard
>>
>>
>> On Fri, May 2, 2014 at 4:02 PM, Richard Vézina <
>> ml.richard.vez...@gmail.com> wrote:
>>
>>> python2.7 web2py ...
>>>
>>>
>>> On Fri, May 2, 2014 at 4:01 PM, LoveWeb2py <atayloru...@gmail.com>wrote:
>>>
>>>> Is there a way to force web2py to use 2.7 instead of 2.6? I thought it
>>>> was using 2.7. Thank you for being so patient.
>>>>
>>>>
>>>> On Friday, May 2, 2014 3:59:06 PM UTC-4, Richard wrote:
>>>>
>>>>> Upgrade to 2.9.5 web2py 2.3 is very old... Consider using 2.7 for
>>>>> python...
>>>>>
>>>>> http://stackoverflow.com/questions/1747817/python-
>>>>> create-a-dictionary-with-list-comprehension
>>>>>
>>>>> You can adapt
>>>>>
>>>>> Richard
>>>>>
>>>>>
>>>>> On Fri, May 2, 2014 at 3:44 PM, LoveWeb2py <atayl...@gmail.com> wrote:
>>>>>
>>>>>> Okay... I think I see the issue. My web2py is running Python 2.6 and
>>>>>> my Interpreter is 2.7. dictionary comprehension changed between those
>>>>>> versions. I'm going to try and construct a dict comprehension for 2.6 and
>>>>>> try it again.
>>>>>>
>>>>>>
>>>>>> On Friday, May 2, 2014 3:40:53 PM UTC-4, LoveWeb2py wrote:
>>>>>>>
>>>>>>> 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+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.
>>>>
>>>
>>>
>>  --
>> 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 a topic in the
>> Google Groups "web2py-users" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/web2py/U2ajc9LzVCk/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> web2py+unsubscr...@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.
>

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

Reply via email to