I have issues implementing a filtered list of tags in a crud form
dropdown.

In the models below, each book belongs to a category and has one or
more tags. Each category has a specified set of tags by defining
tag.categories as a list:reference.

The crud form dropdown shows a filtered tag list if I explicitly
specify a value for "contains":
     categorytags = db(db.tag.categories.contains(6))
but not, if I use:
     categorytags = db(db.tag.categories.contains(db.book.category))

db.define_table('category',
    Field('name'), format='%(name)s')

db.define_table('tag',
    Field('name'),
    Field('categories','list:reference category'), format='%(name)s')

db.define_table('book',
    Field('title'),
    Field('category',db.category),
    Field('tags','list:reference tag'))
categorytags = db(db.tag.categories.contains(db.book.category))
db.book.tags.requires=IS_IN_DB(categorytags,'tag.id',db.tag._format,multiple=True)

Reply via email to