The problem is here:

db.adres.adressoort.widget=lambda f,v: OptionsWidget.widget(SQLField
('adressoort',db.adressoort,requires=db.adres.adressoort.requires
[0]),v)

because you are creating a widget for a new temp field that is
associated to a table. I understand what you are trying to do. Let me
think of a better way. For now you can try:

tmp=SQLField
('adressoort',db.adressoort,requires=db.adres.adressoort.requires[0])
tmp._tablename=db.adres.adressoord._tablename
db.adres.adressoort.widget=lambda f,v: OptionsWidget.widget(tmp,v)


Massimo

On Jul 4, 7:07 am, annet <annet.verm...@gmail.com> wrote:
> In a validator I combine IS_IN_DB() and IS_NOT_IN_DB. I tried solving
> the 'no automatic drop box'  issue by adding a widget based on an
> unnamed function:
>
> db.define_table('adressoort',
>     db.Field('soort',length=30,default='',notnull=True,unique=True),
>     migrate='adressoort.table')
>
> db.adressoort.soort.requires=[IS_LENGTH(30,error_message='lengte
> overschreidt 30 tekens'),IS_NOT_EMPTY(),IS_NOT_IN_DB
> (db,'adressoort.soort',error_message='soort niet uniek')]
> db.adressoort.soort.label='Soort * '
>
> db.define_table('adres',
>     db.Field
> ('bedrijf',db.bedrijf,default='',notnull=True,ondelete='CASCADE'),
>     db.Field
> ('adressoort',db.adressoort,default='',notnull=True,ondelete='RESTRICT'),
>     db.Field(...),
>     migrate='adres.table')
>
> ...
> db.adres.adressoort.requires=[IS_IN_DB(db,db.adressoort.id,'%(soort)
> s',orderby=db.adressoort.id),IS_NOT_IN_DB(db
> (db.adres.bedrijf==request.vars.bedrijf),db.adres.adressoort)]
> db.adres.adressoort.widget=lambda f,v: OptionsWidget.widget(SQLField
> ('adressoort',db.adressoort,requires=db.adres.adressoort.requires
> [0]),v)
> ...
>
> this results in an error:
>
> File "/Library/Python/2.5/site-packages/web2py_1_65_0/gluon/
> sqlhtml.py", line 50, in _attributes
>     _id = '%s_%s' % (field._tablename, field.name),
> AttributeError: 'SQLField' object has no attribute '_tablename'
>
> I wonder whether this problem has been solved with the introduction of
> version 1.65. I read the slides, but the examples are all based on an
> IS_IN_SET() validator, not on a table field.
>
> Kind regards,
>
> Annet.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to