References and Virtual Fields do not play nice together.

73 views
Skip to first unread message

hiro

unread,
Sep 18, 2013, 7:08:28 AM9/18/13
to web...@googlegroups.com
Is this a bug, a limitation or by design?

I create a new welcome application and add the following tables and fields:

db.define_table('entity',
    Field('entity_name', 'string'),
    Field('slogan', 'string'),
)

db.entity.slogan2 =  Field.Virtual(lambda row: row.entity.slogan+' is the best slogan ever')

db.define_table('customer',
    Field('entity_id', 'reference entity'),
    Field('name','string')
)
db.customer.entity_id.requires=IS_IN_DB(db, 'entity.id', '%(entity_name)s',zero=T('choose one'))

I am now unable to add customers using appadmin. Trying at create the crud form for inserting a customer generates the following error:

<type 'exceptions.AttributeError'>('Row' object has no attribute 'slogan')

Using web2py 2.6.3-stable

Is someone else able to reproduce this error?

Same thing happens when I try to remove enteties.


Massimo Di Pierro

unread,
Sep 18, 2013, 9:28:22 AM9/18/13
to web...@googlegroups.com
Fixed in trunk!

hiro

unread,
Sep 18, 2013, 5:13:28 PM9/18/13
to web...@googlegroups.com
Thank you!

Marin Pranjić

unread,
Sep 18, 2013, 7:44:56 AM9/18/13
to web2py-users
I get this error ONLY with appadmin.
It's not because of references.

For now you can use:
lambda row: row.entity.get('slogan', '')+' is the best slogan ever'

Marin


--
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/groups/opt_out.

hiro

unread,
Sep 19, 2013, 3:08:07 AM9/19/13
to web...@googlegroups.com
I have trouble in my application as well in some cases. I solved it for now by switching to the old style of virtual fileds
Reply all
Reply to author
Forward
0 new messages