Look how web2py handles db.table.field.belongs(list).
You can add a db.table.field.contains_text(....) using a similar text.
You will need something like this in dal.py
class Expression(object):
def contains_text(self, value):
return Query(self.db, self.db._adapter.CONTAINS_TEXT, self,
value) def contains_text(...)
class BaseAdapter(ConnectionPool):
def CONTAINS_TEXT(self,first,second):
raise NotImplementedError
class PostgreSQLAdapter(BaseAdapter):
def CONTAINS_TEXT(self,first,second):
a,b = self.expand(first),second
return "to_tsvector('%s', description) @@ to_tsquery('%s',
'%s')" % (a,a,b)
not sure about the last method. Will need testing.