Gone! I get my app to work under 2.0.5 without much problem, just one thing broke, but I don't understand why for now, but it pretty not important.
So, I confirm that : for row in db(db.table.id>0).select(): print row.id OR print row.legacy_id Works. I am pretty happy about that! :) Thanks On Tue, Aug 28, 2012 at 4:13 PM, Richard Vézina <ml.richard.vez...@gmail.com > wrote: > If you want I can make a diff over 1.99.4 and 1.99.5 and try to locate > what breaks the old behavior... Also, I understand that it was something > experimental, but I think it is pretty usefull for legacy database users. > > I will try trunk tomorrow to see if your fix works as expect. > > Thank you Massimo. > > Richard > > > On Tue, Aug 28, 2012 at 4:00 PM, Massimo Di Pierro < > massimo.dipie...@gmail.com> wrote: > >> For now I have committed a fix in trunk. I am not sure it belong there? >> It is not obvious to me the previous behavior was better or not (the >> feature you are using was never documented). >> >> Pros? Cons? >> >> >> On Tuesday, 28 August 2012 11:56:13 UTC-5, Richard wrote: >> >>> FYI what you suggest trigger this error message : >>> >>> <type 'exceptions.SyntaxError'> Object exists and cannot be redefined: id >>> >>> Richard >>> >>> On Tue, Aug 28, 2012 at 12:46 PM, Richard Vézina >>> <ml.richa...@gmail.com>wrote: >>> >>>> Not sure I follow, in the pass we were allowed to define a legacy id >>>> for a table like this : >>>> >>>> db.define_table('test_**endotoxin', >>>> *Field('something_id','id'),* >>>> Field('result','decimal(10,2)'**, >>>> notnull=True, >>>> requires=[IS_NOT_EMPTY(error_**message=T('field can\'t be >>>> empty')), >>>> IS_DECIMAL_IN_RANGE(0.00,**99999999.99)], >>>> required=True >>>> ), >>>> ...) >>>> >>>> It still work except at the level of the row object. >>>> >>>> What you suggest may works, I would have to refactor and create a >>>> virtual field for all my tables... >>>> I was seeking for a solution that prevent me from refactoring in order >>>> to shift from 1.99.4 to 2.0... when there will be a stable version. >>>> >>>> Richard >>>> >>>> On Tue, Aug 28, 2012 at 12:39 PM, Massimo Di Pierro < >>>> massimo....@gmail.com> wrote: >>>> >>>>> How about >>>>> >>>>> table.id = Field.Virtual(lambda row: row.table.something_id) >>>>> >>>>> >>>>> On Tuesday, 28 August 2012 10:30:37 UTC-5, Richard wrote: >>>>>> >>>>>> Hello Massimo, >>>>>> >>>>>> I notice when I try to migrate to 1.99.7 some times ago that I could >>>>>> not anymore do something like this : >>>>>> >>>>>> rows = db(db.table.id>0).select() >>>>>> >>>>>> for row in rows: >>>>>> print row.id >>>>>> >>>>>> I can did it before 1.99.5. >>>>>> >>>>>> Has Anthony wrote in this thread : https://groups.google.com/**fo** >>>>>> rum/#!msg/web2py/**i7wx6JVTOtw/**FRnScZzhqHgJ<https://groups.google.com/forum/#!msg/web2py/i7wx6JVTOtw/FRnScZzhqHgJ> >>>>>> >>>>>> We still can do : >>>>>> >>>>>> db.table.id even if the "real" table id name (or legacy id name) is >>>>>> something else like : something_id >>>>>> >>>>>> To me it is just a matter to have a alias for any legacy id name when >>>>>> creating a row object : >>>>>> >>>>>> Row in 1.99.4 >>>>>> <Row {'something_id': 252, 'update_record': <function <lambda> at >>>>>> 0x215eaa0>, 'field1': Decimal('5.55'), *'id': 252*, 'delete_record': >>>>>> <function <lambda> at 0x215eb18>}> >>>>>> >>>>>> >>>>>> Row in 1.99.5-1.99.7 >>>>>> <Row {'something_id': 252, 'update_record': <function <lambda> at >>>>>> 0x215eaa0>, 'field1': Decimal('5.55'), 'delete_record': <function >>>>>> <lambda> >>>>>> at 0x215eb18>}> >>>>>> >>>>>> Could we have it back or it is gone? >>>>>> >>>>>> Thank you. >>>>>> >>>>>> Richard >>>>>> >>>>> -- >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> -- >> >> >> >> > > --