This should work.. # On models class SQLFORM(SQLFORM): ''' Customized SQLFORM '''
def __init__(self, *args, **kwargs): kwargs.setdefault("formstyle", "divs") super(MySQLFORM, self).__init__(*args, **kwargs) On Sun, Sep 2, 2012 at 8:11 PM, vinicius...@gmail.com <vinicius...@gmail.com > wrote: > Anthony, another one would be hide_error. > > These are settings affect app style of visualization and user interaction. > So, it makes sense to be defined once and overriden when necessary. > > -- > Vinicius Assef > > > > On 09/02/2012 12:34 PM, Anthony wrote: > >> Are there other examples of potential global configs? For forms, perhaps >> we could set the default via a "formstyle" class attribute, which you >> could then change once in your code. >> >> Anthony >> >> On Sunday, September 2, 2012 11:27:42 AM UTC-4, viniciusban wrote: >> >> I think it would be nice to have some global configs in web2py. >> One of them is formstyle. >> >> It's unpleasant to define formstyle in every FORM definition. >> This formstyle config could come in db.py like Auth configs. >> >> So, once defined my app formstyle, it should be used as default. But >> in >> a specific FORM, I could override it, according to my needs. >> >> Any oppinion? >> >> -- >> Vinicius Assef >> >> >> On 09/02/2012 12:12 PM, Anthony wrote: >> > We also need to document the new formstyle='bootstrap' option as >> well as >> > the new callable formstyle option that takes the form and fields and >> > builds the entire form DOM. >> > >> > Anthony >> > >> > On Saturday, September 1, 2012 5:37:11 PM UTC-4, Massimo Di Pierro >> wrote: >> > >> > These features are now documented in the html book. Working on >> more. >> > >> > [x] Support for DAL(lazy_tables=True) and >> > db.define_table(on_define=**lambda table:), thanks Jonathan >> > [x] db(...).select(cacheable=True) make select 30% faster >> > [x] db(...).select(cache=(cache.**ram,3600)) now caches parsed >> data >> > 100x faster >> > [x] db(...).count(cache=(cache.**ram,3600)) now supported >> > [x] MongoDB support in DAL (experimental), thanks Mark Breedveld >> > [x] db.mytable._before_insert, _after_insert, _before_update, >> > _after_update, _before_delete. _after_delete (list of callbacks) >> > [x] DAL BIGINT support and DAL(...,bigint_id=True) >> > [x] IS_IN_DB(..., distinct=True) >> > [x] new syntax: db.mytable.insert(**myuploadfield=open(....)), >> thank >> > you Iceberg >> > [x] db(...).select(db.mytable.**myfield.count(distinct=True)) >> > [x] teradata adapter, thanks Andrew Willimott >> > [x] experimental Sybase Adapter >> > [x] added db.table.field.avg() >> > [x] Field(... 'upload', default=path) now accepts a path to a >> local >> > file as default value, if user does not upload a file. Relative >> path >> > looks inside current application folder, thanks Marin >> > [x] executesql(...,fields=,**columns=) allows parsing of >> results in >> > Rows, thanks Anthony >> > >> > [x] @auth.requires_login(**otherwise=URL(...)) >> > [x] CRYPT now defaults to pbkdf2(1000,20,sha1) >> > [x] allow storage of uploads on any PyFileSystem (including >> amazon) >> > >> > [x] more export options in SQLFORM.grid and SQLFORM.smartgrid >> (html, >> > xml, csv, ...) >> > >> > [x] new layout based on Twitter Bootstrap >> > [x] New generic views: generic.ics (Mac Mail Calendar) and >> > generic.map (Google Maps) >> > [x] request.args(0,default=0, cast=int, otherwise=URL(...)), >> thanks >> > Anthony >> > [x] redirect(...,type='auto') will be handled properly in ajax >> responses >> > [x] routes in can redirect outside with >> > routes_in=[('/path','303->**http://..')] >> > [x] .coffee and .less support in response.files, thanks Sam >> Sheftel >> > [x] ldap certificate support >> > [x] pg8000 postgresql driver support (experimental) >> > >> > [x] db.table.field.like(...,case_**sensitive=False) (thanks >> Floyd) >> > [x] db.table.field.regexp(...) for sqlite and postgres >> > [ ] db(...,ignore_common_filters=**True) >> > [x] db(db.dog_id.belongs(db.dogs.**owner=='james')).select() >> > [ ] db(...).select().group_by_**value(db.table.field) (thanks >> Yair) >> > [x] db = DAL('imap://user:password@**server:port') support >> (thanks >> > Alan Etkin) >> > [x] db = DAL('teradata://DSN=dsn;UID=**user;PWD=pass; >> > DATABASE=database') (thanks Adrew Willmott) >> > [x] db = >> DAL('mongodb://127.0.0.1:5984/**db<http://127.0.0.1:5984/db>< >> http://127.0.0.1:5984/db> >> > <http://127.0.0.1:5984/db>') (experimental, thanks Mark >> Breedveld) >> > [x] db = DAL('cubrid') (experimental) >> > [x] db = DAL('postgres:pg8000:...') and >> DAL('postgres:psycopg2:...') >> > [x] pg8000 now ships with web2py (thanks Mariano) >> > [x] reponse.delimiters = ('\\[','\\]') (thanks Denes) >> > [x] conditional menu items >> > (reponse.menu=[(title,bool,**link,[],condition)] >> > >> > >> > >> > I could use some help documenting these features >> > >> > [ ] geodal and spatialite, thanks Denes and Fran (experimental) >> > [ ] Support for Google App Engine projections, thanks Christian >> > [ ] Scheduler Improvements (thanks to niphlod, ykessler, dhx, >> toomim) >> > [ ] DIV(..).elements(...replace=..**.), thanks Anthony >> > [ ] new fpdf, thanks Mariano >> > [ ] included web-based debugger (experimental, thanks Mariano) >> > [ ] pluralization system (Vladyslav) >> > [ ] T.M helper (Vladyslav) >> > >> > >> > Eventually some of the new features require a loger discussion >> in a >> > blog-like fashion than just a mention and a short example in >> the book. >> > >> > >> > -- >> > >> > >> > >> >> -- >> >> >> >> > -- > > > > --